From 286fecd7e94da58c3c77905c8a06009a5a34b28b Mon Sep 17 00:00:00 2001 From: Terra Manning Date: Thu, 7 Nov 2024 10:12:19 -0700 Subject: [PATCH 01/34] test: push to check repo updates --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 0ca5a72..717a01c 100644 --- a/README.md +++ b/README.md @@ -15,3 +15,5 @@ rails db:schema:dump This repo uses a pgdump file to seed the database. Your `db:seed` command will produce lots of output, and that's normal. If all your tests fail after running `db:seed`, you probably forgot to run `rails db:schema:dump`. Run your server with `rails s` and you should be able to access endpoints via localhost:3000. + +Change Test for push \ No newline at end of file From 5cbf6feb8f1b5f83e5f1d0bda118e9568d9ea615 Mon Sep 17 00:00:00 2001 From: Terra Manning Date: Thu, 7 Nov 2024 10:15:05 -0700 Subject: [PATCH 02/34] test: checking pull request from branch --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 717a01c..0ca5a72 100644 --- a/README.md +++ b/README.md @@ -15,5 +15,3 @@ rails db:schema:dump This repo uses a pgdump file to seed the database. Your `db:seed` command will produce lots of output, and that's normal. If all your tests fail after running `db:seed`, you probably forgot to run `rails db:schema:dump`. Run your server with `rails s` and you should be able to access endpoints via localhost:3000. - -Change Test for push \ No newline at end of file From b460c9713ee43df6bddc7d9a85c7a3714fbefd9a Mon Sep 17 00:00:00 2001 From: Terra Manning Date: Thu, 7 Nov 2024 16:28:27 -0700 Subject: [PATCH 03/34] feat: add tests to starter for simplecov 100% coverage for my own sanity --- db/schema.rb | 60 ++++++++ spec/requests/api/v1/item/item_search_spec.rb | 135 ++++++++++++------ .../api/v1/merchant/invoices_request_spec.rb | 12 ++ .../api/v1/merchant/items_request_spec.rb | 34 +++-- 4 files changed, 189 insertions(+), 52 deletions(-) diff --git a/db/schema.rb b/db/schema.rb index f913998..101e777 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -14,4 +14,64 @@ # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" + create_table "customers", force: :cascade do |t| + t.string "first_name" + t.string "last_name" + t.datetime "created_at", precision: nil, null: false + t.datetime "updated_at", precision: nil, null: false + end + + create_table "invoice_items", force: :cascade do |t| + t.bigint "item_id" + t.bigint "invoice_id" + t.integer "quantity" + t.float "unit_price" + t.datetime "created_at", precision: nil, null: false + t.datetime "updated_at", precision: nil, null: false + t.index ["invoice_id"], name: "index_invoice_items_on_invoice_id" + t.index ["item_id"], name: "index_invoice_items_on_item_id" + end + + create_table "invoices", force: :cascade do |t| + t.bigint "customer_id" + t.bigint "merchant_id" + t.string "status" + t.datetime "created_at", precision: nil, null: false + t.datetime "updated_at", precision: nil, null: false + t.index ["customer_id"], name: "index_invoices_on_customer_id" + t.index ["merchant_id"], name: "index_invoices_on_merchant_id" + end + + create_table "items", force: :cascade do |t| + t.string "name" + t.string "description" + t.float "unit_price" + t.bigint "merchant_id" + t.datetime "created_at", precision: nil, null: false + t.datetime "updated_at", precision: nil, null: false + t.index ["merchant_id"], name: "index_items_on_merchant_id" + end + + create_table "merchants", force: :cascade do |t| + t.string "name" + t.datetime "created_at", precision: nil, null: false + t.datetime "updated_at", precision: nil, null: false + end + + create_table "transactions", force: :cascade do |t| + t.bigint "invoice_id" + t.string "credit_card_number" + t.string "credit_card_expiration_date" + t.string "result" + t.datetime "created_at", precision: nil, null: false + t.datetime "updated_at", precision: nil, null: false + t.index ["invoice_id"], name: "index_transactions_on_invoice_id" + end + + add_foreign_key "invoice_items", "invoices" + add_foreign_key "invoice_items", "items" + add_foreign_key "invoices", "customers" + add_foreign_key "invoices", "merchants" + add_foreign_key "items", "merchants" + add_foreign_key "transactions", "invoices" end diff --git a/spec/requests/api/v1/item/item_search_spec.rb b/spec/requests/api/v1/item/item_search_spec.rb index 20efcc3..80f3aa9 100644 --- a/spec/requests/api/v1/item/item_search_spec.rb +++ b/spec/requests/api/v1/item/item_search_spec.rb @@ -1,77 +1,128 @@ require "rails_helper" -RSpec.describe "Item Search Endpoints" do - context "find one item:" do - describe "happy path" do - let(:merchant) { create(:merchant) } - it "should retrieve the first item alphabetically" do - item1 = merchant.items.create({name: "brush", description: "good stuff", unit_price: 13.50}) - item2 = merchant.items.create({name: "No more rush Watch", description: "You will never rush again", - unit_price: 25.50}) - - get api_v1_items_find_index_path, params: {name: "rush"} +RSpec.describe "Item search endpoints" do + before :each do + @item1 = create(:item, name: "Widget", unit_price: 50) + @item2 = create(:item, name: "Gadget", unit_price: 75) + @item3 = create(:item, name: "Widget Pro", unit_price: 100) + end + + describe "GET /api/v1/items/find" do + context "when searching by name" do + it "returns a single item by name" do + get "/api/v1/items/find", params: { name: "Widget" } + json = JSON.parse(response.body, symbolize_names: true) - - expect(json[:data][:attributes][:name]).to eq("brush") + expect(response).to be_successful + expect(json[:data][:attributes][:name]).to eq("Widget") end - it "should return the item that satisfies price queries" do - item1 = create(:item, name: "apple", unit_price: 1.09, merchant: merchant) - item2 = create(:item, name: "banana", unit_price: 0.99, merchant: merchant) - item3 = create(:item, name: "mango", unit_price: 3.99, merchant: merchant) + it "returns an empty response when no item matches" do + get "/api/v1/items/find", params: { name: "Nonexistent" } - get api_v1_items_find_index_path, params: { min_price: 0, max_price: 3} json = JSON.parse(response.body, symbolize_names: true) - expect(json[:data][:attributes][:name]).to eq("apple") + expect(response).to be_successful + expect(json[:data]).to be_empty end end - describe "sad path" do - it "should return an error if there are no search params" do - get api_v1_items_find_index_path + context "when searching by price" do + it "returns an item within a min price" do + get "/api/v1/items/find", params: { min_price: 60 } + + json = JSON.parse(response.body, symbolize_names: true) + expect(response).to be_successful + expect(json[:data][:attributes][:unit_price]).to be >= 60 + end + + it "returns an item within a max price" do + get "/api/v1/items/find", params: { max_price: 60 } + json = JSON.parse(response.body, symbolize_names: true) - expect(json[:errors][0]).to eq("invalid search params") + expect(response).to be_successful + expect(json[:data][:attributes][:unit_price]).to be <= 60 end - it "should return an error if name and price params are present" do - get api_v1_items_find_index_path, params: { name: "ring", max_price: 3} + it "returns an empty response when no item is in price range" do + get "/api/v1/items/find", params: { min_price: 200 } + json = JSON.parse(response.body, symbolize_names: true) - expect(json[:errors][0]).to eq("invalid search params") + expect(response).to be_successful + expect(json[:data]).to be_empty + end + + it "returns a 400 error when min price is greater than max price" do + get "/api/v1/items/find", params: { min_price: 100, max_price: 50 } + + json = JSON.parse(response.body, symbolize_names: true) + expect(response).to have_http_status(:bad_request) + expect(json[:message]).to eq("your query could not be completed") + end + end + end + + describe "GET /api/v1/items/find_all" do + context "when searching by name" do + it "returns multiple items by name" do + get "/api/v1/items/find_all", params: { name: "Widget" } - get api_v1_items_find_index_path, params: { name: "ring", min_price: 0, max_price: 3} json = JSON.parse(response.body, symbolize_names: true) - expect(json[:errors][0]).to eq("invalid search params") + expect(response).to be_successful + expect(json[:data].count).to eq(2) + expect(json[:data].map { |item| item[:attributes][:name] }).to include("Widget", "Widget Pro") end + end + + context "when searching by price" do + it "returns items within a min price range" do + get "/api/v1/items/find_all", params: { min_price: 60 } - it "should return an error if price params are negative" do - get api_v1_items_find_index_path, params: { max_price: -3} json = JSON.parse(response.body, symbolize_names: true) - expect(json[:errors][0]).to eq("invalid search params") + expect(response).to be_successful + expect(json[:data].all? { |item| item[:attributes][:unit_price] >= 60 }).to be true end - it "should return an error if any params are empty strings" do - get api_v1_items_find_index_path, params: { name: "" } + it "returns items within a max price range" do + get "/api/v1/items/find_all", params: { max_price: 60 } + json = JSON.parse(response.body, symbolize_names: true) - expect(json[:errors][0]).to eq("invalid search params") + expect(response).to be_successful + expect(json[:data].all? { |item| item[:attributes][:unit_price] <= 60 }).to be true end end end - context "find all items:" do - let(:merchant) { create(:merchant) } + describe "validation errors" do + it "returns a 400 error when name is combined with price filters" do + get "/api/v1/items/find", params: { name: "Widget", min_price: 50 } + + json = JSON.parse(response.body, symbolize_names: true) + expect(response).to have_http_status(:bad_request) + expect(json[:message]).to eq("your query could not be completed") + end - it "should return all items that verify the price parameters" do - item1 = create(:item, name: "apple", unit_price: 1.09, merchant: merchant) - item2 = create(:item, name: "banana", unit_price: 0.99, merchant: merchant) - item3 = create(:item, name: "mango", unit_price: 3.99, merchant: merchant) + it "returns a 400 error when min_price is negative" do + get "/api/v1/items/find", params: { min_price: -10 } + json = JSON.parse(response.body, symbolize_names: true) + expect(response).to have_http_status(:bad_request) + expect(json[:message]).to eq("your query could not be completed") + end + + it "returns a 400 error when max_price is negative" do + get "/api/v1/items/find", params: { max_price: -20 } - get api_v1_items_find_all_index_path, params: { max_price: 3.50 } json = JSON.parse(response.body, symbolize_names: true) + expect(response).to have_http_status(:bad_request) + expect(json[:message]).to eq("your query could not be completed") + end - item_names = json[:data].map { |element| element[:attributes][:name] } - expect(item_names).to match_array(["apple", "banana"]) + it "returns a 400 error when no search parameters are provided" do + get "/api/v1/items/find" + json = JSON.parse(response.body, symbolize_names: true) + expect(response).to have_http_status(:bad_request) + expect(json[:message]).to eq("your query could not be completed") end end end \ No newline at end of file diff --git a/spec/requests/api/v1/merchant/invoices_request_spec.rb b/spec/requests/api/v1/merchant/invoices_request_spec.rb index 2ead436..cfc041b 100644 --- a/spec/requests/api/v1/merchant/invoices_request_spec.rb +++ b/spec/requests/api/v1/merchant/invoices_request_spec.rb @@ -15,6 +15,18 @@ @invoice2 = Invoice.create!(customer: @customer1, merchant: @merchant2, status: "shipped") end + it "should return all invoices for a given merchant when no status param is provided" do + get "/api/v1/merchants/#{@merchant1.id}/invoices" + + json = JSON.parse(response.body, symbolize_names: true) + + expect(response).to be_successful + expect(json[:data].count).to eq(4) + json[:data].each do |invoice_data| + expect(invoice_data[:attributes][:merchant_id]).to eq(@merchant1.id) + end + end + it "should return all invoices for a given merchant based on status param" do get "/api/v1/merchants/#{@merchant1.id}/invoices?status=packaged" diff --git a/spec/requests/api/v1/merchant/items_request_spec.rb b/spec/requests/api/v1/merchant/items_request_spec.rb index cf9b9b2..ecd39ee 100644 --- a/spec/requests/api/v1/merchant/items_request_spec.rb +++ b/spec/requests/api/v1/merchant/items_request_spec.rb @@ -1,23 +1,26 @@ require "rails_helper" RSpec.describe "Merchant items endpoints" do + before :each do + @merchant1 = create(:merchant) + @merchant2 = create(:merchant) + @item1 = create(:item, merchant_id: @merchant1.id) + @item2 = create(:item, merchant_id: @merchant1.id) + @item3 = create(:item, merchant_id: @merchant1.id) + end + it "should return all items for a given merchant" do - merchant1 = create(:merchant) - item1 = create(:item, merchant_id: merchant1.id) - item2 = create(:item, merchant_id: merchant1.id) - item3 = create(:item, merchant_id: merchant1.id) - merchant2 = create(:merchant) - create(:item, merchant_id: merchant2.id) + create(:item, merchant_id: @merchant2.id) - get "/api/v1/merchants/#{merchant1.id}/items" + get "/api/v1/merchants/#{@merchant1.id}/items" json = JSON.parse(response.body, symbolize_names: true) expect(response).to be_successful expect(json[:data].count).to eq(3) - expect(json[:data][0][:id]).to eq(item1.id.to_s) - expect(json[:data][1][:id]).to eq(item2.id.to_s) - expect(json[:data][2][:id]).to eq(item3.id.to_s) + expect(json[:data][0][:id]).to eq(@item1.id.to_s) + expect(json[:data][1][:id]).to eq(@item2.id.to_s) + expect(json[:data][2][:id]).to eq(@item3.id.to_s) end it "should return 404 and error message when merchant is not found" do @@ -30,4 +33,15 @@ expect(json[:errors]).to be_a Array expect(json[:errors].first).to eq("Couldn't find Merchant with 'id'=100000") end + + it "updates the item if merchant_id is valid" do + new_attributes = { name: "Updated Item Name", merchant_id: @merchant1.id } + patch "/api/v1/items/#{@item1.id}", params: new_attributes + + json = JSON.parse(response.body, symbolize_names: true) + + expect(response).to have_http_status(:ok) + expect(json[:data][:attributes][:name]).to eq("Updated Item Name") + expect(json[:data][:attributes][:merchant_id]).to eq(@merchant1.id) + end end \ No newline at end of file From 3521f39f06ab51c780f69b717964e8b585ad6ce6 Mon Sep 17 00:00:00 2001 From: Terra Manning Date: Fri, 8 Nov 2024 08:34:57 -0700 Subject: [PATCH 04/34] feat: create migrations for coupon table and invoice association --- db/migrate/20241108002837_add_coupons_table.rb | 14 ++++++++++++++ .../20241108003953_add_coupon_to_invoices.rb | 6 ++++++ db/schema.rb | 18 +++++++++++++++++- 3 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 db/migrate/20241108002837_add_coupons_table.rb create mode 100644 db/migrate/20241108003953_add_coupon_to_invoices.rb diff --git a/db/migrate/20241108002837_add_coupons_table.rb b/db/migrate/20241108002837_add_coupons_table.rb new file mode 100644 index 0000000..d3eba9a --- /dev/null +++ b/db/migrate/20241108002837_add_coupons_table.rb @@ -0,0 +1,14 @@ +class AddCouponsTable < ActiveRecord::Migration[7.1] + def change + create_table :coupons do |t| + t.string :name + t.string :code + t.float :discount_value + t.string :discount_type + t.boolean :active, default: true + t.references :merchant, null: false, foreign_key: true + + t.timestamps + end + end +end diff --git a/db/migrate/20241108003953_add_coupon_to_invoices.rb b/db/migrate/20241108003953_add_coupon_to_invoices.rb new file mode 100644 index 0000000..e29cc64 --- /dev/null +++ b/db/migrate/20241108003953_add_coupon_to_invoices.rb @@ -0,0 +1,6 @@ +class AddCouponToInvoices < ActiveRecord::Migration[7.1] + def change + add_reference :invoices, :coupon, foreign_key: true, null: true + end +end + diff --git a/db/schema.rb b/db/schema.rb index 101e777..8b69821 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,10 +10,22 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[7.1].define(version: 0) do +ActiveRecord::Schema[7.1].define(version: 2024_11_08_003953) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" + create_table "coupons", force: :cascade do |t| + t.string "name" + t.string "code" + t.float "discount_value" + t.string "discount_type" + t.boolean "active", default: true + t.bigint "merchant_id", null: false + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + t.index ["merchant_id"], name: "index_coupons_on_merchant_id" + end + create_table "customers", force: :cascade do |t| t.string "first_name" t.string "last_name" @@ -38,6 +50,8 @@ t.string "status" t.datetime "created_at", precision: nil, null: false t.datetime "updated_at", precision: nil, null: false + t.bigint "coupon_id" + t.index ["coupon_id"], name: "index_invoices_on_coupon_id" t.index ["customer_id"], name: "index_invoices_on_customer_id" t.index ["merchant_id"], name: "index_invoices_on_merchant_id" end @@ -68,8 +82,10 @@ t.index ["invoice_id"], name: "index_transactions_on_invoice_id" end + add_foreign_key "coupons", "merchants" add_foreign_key "invoice_items", "invoices" add_foreign_key "invoice_items", "items" + add_foreign_key "invoices", "coupons" add_foreign_key "invoices", "customers" add_foreign_key "invoices", "merchants" add_foreign_key "items", "merchants" From 0631448130bc69152821c8ac01100f0d2363c962 Mon Sep 17 00:00:00 2001 From: Terra Manning <167652364+TDManning@users.noreply.github.com> Date: Fri, 8 Nov 2024 08:48:52 -0700 Subject: [PATCH 05/34] Add files via upload dbdiagram.io image with coupon and invoice relationship added. --- LittleShopDiagram.png | Bin 0 -> 300992 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 LittleShopDiagram.png diff --git a/LittleShopDiagram.png b/LittleShopDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..c04720d039d694b3c75c0a9307ebab3e2367d3cb GIT binary patch literal 300992 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 z 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 z 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%0AdMA?pV`1oM^XtHa@a2Gg0JY&k z1Fi9~F^BhD^o3J2H8a++BVl#?%^v>|&;}~jz^h2x5}Z$DWozOv3AbXyij%}Dyk@67 zW&p%znYRHS#X5BilBiBtJUE}Rm?Xs_uWqJowT7xQ7pda(Mp_vNc=xt>c=L^Tt?+GT z9(@T0J(Jt_3bp|$Z&`HvLI2199lIGiOa$=xt9L&Cg|xr@BWc?kUaEUa0t!I1@0X{Y zArSEzXBBA+A1xm))&zY=#pgThhzo-bg_A8Z7CthtyY{h@Cz6XYSZc}%{dunxieLUt z5P5h5=DFw(9J6=(srQsV;u7T&P`|p`&mA-d$Mbc;Y&jIF%O5qpbQF2ojw88C`S8EC zu-%$%?bU7hx5hfPqC5+XyZ!tO9cL~y3a!~dkLiqfkO^1k4OgANC4tsc=#^-RaPc`BGOys3WqwjK zC2BVI)|L|TFq5|D!AMF<{-*I9?cl?g_WAiht7~Z{+n@-*uCx}batH_$lP$^VY@Ivk zksB=9l8edn*PS9*I}(%O*A;G2VWGQw(#TNz4oY`nX_k4|c5E?bIwo96TETya*q3#; zXt4Muiv_x)?vcz{Np@7wZlE(?Tr!fa*DIgO>_%n0`W-)bc+52C-SpsF3a zOx7lyki-a8<=s0Ci629Nhwa0dBUEu*fQ?qRaP zC|f?2Gv<^^Z|H8Tj4;XE&`h7p!V!=Lq+L_$9u$qCQj8Hu{DM{mW*f&sR(NwgY1YQ$ zKf=L;{AN^mboFe;7}~f&ZeC!UmmTW@`u#HQ3i=D}7y0Vqr`T2jcpC1PTCFpsZtnUu z7l0~0BQ1qNFzW@u?3x?Jl|dj%@O|y>e2<_T+YT$b}SwN6wxQyOw-uRbsbe9 zFL<}3PC63g7Rb8n=Ihnx?VL}CT0P7R1V7|d#($nQ8Q*M6`4soz+v~(XYbCIk8;mdt!`Ke+T`w%#Z+^C_T;mRmD=-~c$skFw3F^>?UTG4 z-2CH><1NYa8lShcPG7q>-IeeU6K*rM<>TbGD)hMbtkFJS(A!9IY-nVaLCc0< zjvJnv9X(M?1DX43x2%ifmoXIpl%N?B)Sb%JsRd=%;B7kI76A3}&y<~=vrfWM6=+}1 zB}Y45pQuUGbYu{!1=XM?s{hk#YXHzxhk%w=TW`0ljTt~z%FgxPtn3C&2f8t{!Yy4+ z%s_NzCV6~!Hvq%!;YcCkWoulzQ|fm=menc)ppCgTIe47>I2?(b#BOFB=#CZX*Z`c| zKOg@JhXF2p{9#H4$2K7;>;SO)om(J*5*w?2WtRf@EYGLz)E;(zi=qo=XoN)r{_3N|C&E<>$(}3rmOl>ALG}HSoOwuJ3i-$czrjsCCtg=H)L)Qa12F z|1g&RB5fhyirS<&Eu=@mwtIHh_&Sd3fy19liR8X}dJTTfvU$|{zqsY@r@MoVnRmwN zcD~W#J}CB8T?;WuD>E z>4ho7|6mF}fmfVqYU5sF!2N{ymN5V()INA^t|nB;=I#Fm8l;{CWHbEdn&eb8ke@!& z@?e>A*bqhA9>tq6`8`5{=(5JZlDc!W5% z9(c&JIMN{exgSRfZmv?sT80mR>nz|d)4a=4dX^0q@{6iYkS7q~m@yX=^Cdt!y7HU8 zAN7}Or!D~2pVGjT@UwjIM$UoRIEd;$Zw|O>zW=|x7B~xZK&UG@mER}d)a1Eo63mo+M2)bJ<9uz2HE zae-RN$6fG;(zG0Q@KN7!(DB662Uk7;^2qxSHXi_)61TNM7uIml(9Ke{{A6nd4C7Tv z>_(k~Jm^2%{-1bw|F;LpV~Q@Z^@hR|$C-w+W3|@m&kW^&D2kBBaW#GaAqalMF(UqP zs`=+Iq5OzLXp?h!^*e#Pw5y*m!UFE8BDf|0%w%z(*Sa(toXD8^3w#`GHcKw-+TB3u zQs$|ia)GokNj z_7H@%A@g;yOrMV~H@MQjgW{}r0r+i_0!{I7i7@plAaB-)qf_H#c7dRBPs@#YFjH_; z^*Il81xogfp9*Rign%%#5A=fqm@h=Refnw*n0b1qmR5h34elI5;m)CT$xb^AFo|Gj zFvana2!Ypuwx8-vdn&Qqyt>p6OCa{$BL#*mPm|0ZJ<5JnnotMi*cohVPk#f|&b!)J zmX(sP0{84lah-hJY!Apk-wEJ1X$sh{JwGKMcHaC>8-x?>`4^bBBE!7{;K^r`>i~T7 zYPL%96#Dqw2Q9vBf_HLSKy#WCd`kNy?vlbphBF#QBedn)kcZsT?8f&2HD8ez`x z-u|Qcw;zEZPBelwZ;^PR(*CY|e~Rk>?{y8+0rJY#s%qHP${u2w&&8l$2QVU>`e1m! zxmW}wx7*2+z&1fBKaG~mz=e9OA+mwynD8JlW%hj7s&Y?Jc zLC`h348TwnGtChc04`%7qXNkPP!2)Gx9Z@sXmTrW3H?O|$^H#_;K*?#`~T<@b?a$2 z5R9eD9&?l*vTq~>Dr#jUU>RGi$~loI)opjzLg#DGz7`%m`xFTJ<8CecPB=xh%d|Ji zNQf4#!moc)?cc;1Eu5(s|0;LbTmYF>n0(xQ|1CSxeuR%?#4Ug|uk-GHz&Sq%40Z9F zZK62Y#b?H!+W;g4Q=!4e1arp}u0Xb$1w8^Cg7lbLHv_?i3RUrCB*pFnpxK&W;J#K` z-u2F7caQLQx`elv{&mf>7JHP@^LsXoi*H8 zgh~5`*1zw{EgVxkX0qz@-#Z7qwk&X79X0`0y^VktY%xS~1FY{woNragaMb36j%|e? z3(JUQvrU5>qs_yPKM5pQsEoZp}c|41G=2nWy4R6fPcf(+3|WrrWm1kY!ucLhnvP>1qqIM zf)5q?3*&SQg!77;7#wVoO;ZPo%UPn7NT&H6oY99nS`=fGI0*2IdU+-Q=3}(CI&8FF zy$`|3eNpdjtVdy@TfWv4F`^kweC^KMfLU)N&OO0~gSSlcHx7jdu8bio>HUeC=q9?v z2()9vkXbk>Zw-Zj&p2`T5{WscWzfyepcM4}1UALLa6kWw88>hb<0AA1@?WXbEp>3& ze~I-fuu0~&!)DKaML2MV{(^0cSUEMWe>mf>I%v3ORC~IYgUZt3u{CkD7H)2+-fH_~ zlwQ5Rm}^ghs0YiE0XL`K0P1$d5ksjj$LS^H6VdN7?my6FXMwV0l90-ur@8+INpl1M zLi3^U0%X+0cD32xjGmjXi`M0T{C(m*y{#jnz>AN6i9{jB;9?HaSjW2PeO}XJ6Cu}u z*fHzrr(Y^tzvQSD_gcK>FJhEML*H>%E5&fg;w>5bmgmo%dwIF#Z;yW+6WAZGaH?H! z9p5hl*k-f0xh4b;=niFuC;1eb>BIce4 z-@J$%+KHRXD4;n;O05#~ii}^iitXGZL~P0LNij@E?5Df`7N+ub=~|d=6m#B6M>%9F zVhrHM?ig8*{rtz3WxMX-7kTcQwm=7q&DybDNHLpm*p$Nh063;uVsaNP>B&;NZ3+B72$P=fF8}11gVtX@3=HTWtnqXYC2F$DB)Oqi*1;s| z(qjr|V~eH@T8vS?H}FA?S+853%{XbUJwZ>KMVxblA}Z`4g;~_zFmANb&|u}k~l$!1b>(eV179#edqyFM`V#4)IEG=coqS8m2d zn}pWVo_9%S)A5cD01{Ef4LVE6Z$64!QP2*8#Mki8s*n$20%AbiFlnJ(SNimw(_ zywrwL+Zyv-x&Tn)&h8Nw;`iAzxA{tGqhWngf9Amy1R=Kcta1+YG-tz^w8@nBqp;10Zc zn{Sh?1YXR2SCRr2)h|*7c!)eX^WD7{!?D80V@+Xt*3Xhh%zmhE&#R0rt&PT$9|(Q% zU3XcvJljXMO+%yc1PG$*`*XC~>y4B$a52fYJ^n@rN;~|u0Y-9{5LmPr!Tci~BZHui zF=#Y30=dI?U#Blyg(`{V5`uy0?u(90a+n5YZhw8kP*q@Sx`+Eiig9l}W)@sJmvQc` z8hHvvp*%o9=7NO5g#}>jEeqeZEtOvmd~>#H56bEB$jk#uvGHrfeX$M{F*(CSyk$u| z5dPCC;LdWooFS?NzjQH6pw$O#60*0JG=KLL9;}51Tz>`flSdYA)5JcLF@u4d!iKvk z?+R=NaWAR_>{Ni8k^_xIQK!FoDtWNjYw|nn&R%(Gf%Pq2%+Xwgc7gSB@)7xRvw6^V z2`BL$vpr`V`7GdJ?{l|5zawUC;Z61J$79}d(LRJqvQTH{C15#Zv)2nG1($`ahbAM5 zaT6Z>UuhDDvoXKH5yG$N`w^i8*5qv}NqpmP0)%fvZ+>gxKV^owJjmC#?2EyT)Pj{G zUt!Mt^JJz`aF12>D@85xoLke-zDN~7eR8laqiH)^8?PSCzQ%fK5}Y13O1I8+H~6_A zDoFzD{AOKB*I0S3o4&5J|zG8k<14Xsf|W=j*%U#tW0gjYoXviA;99f#^z~L$pKz`hJ4oz zR-n==aN}JDc7RaqECh~P++#+WMv#$tpY%5W&MM}*rL+V?IZWGeK>I)Gd~M?P&TVr& zDR;WAfPepn-p}K>V3`PsvvR#!uj*jZg>-MPSND^0t;fDOQwCj&>}5o%-^TmB!rw_3 z6?C+}zK#(sdG_;K(1D;u56fVV7N;J))B>OgJZJXU@KvG3d~^b$p(5C~p2vG}vOc2^ zfv14m?s5_;Rv$lGiZvIONttPQdK4F$CgrdgeeY%t-BA;Ct18%6iv8BOI*J@NTMId4|%RbR9A z2bEvjvi%r^p8Hru8ey}wRE3B6ogWJ22sl`Pl*e{+`g=Yg$ovK{{TrN|up2nvt6puh zVadU7?Dw85bft2PfW6s_bVHCh)TDp}N4g(@4~xP?zUl(3B6I)?y0bI+PGzapU^Y91 zN!(+o6L$>6kY5!YDz)s();wDZkujZ?{V3RlY9y!Qd;6=%7_c&gKEJ_cC^@Wj(t!)1 z&T8w=|M$|MmH->*yJ66X{~NFxa+9Ls!6C*)4i&*EDR=5!r_`gCL zbF_ExoecCJ3X%6#+Ws1H61);r&K!T)0b|($OkgaNYgU0;-t}bF&#w6AJ8I4hAc)ln^u0NNozt&7HyGa4M)d%3b;KK6C}-?#L~=bgEY$0WH!N zgzn%Is5=mgF!d}b&S}dHK?SVd@jQA?B?|L!+y9-K_>?EgbvWkvcSN`tT3|Yn&wf%; zeq1~i<IdN&EccVXu6UC3jbchO=tAgY0=jGlMI=lZ)G;49G9@Sd`M*V{kQ3-uMSoy z$QP9e2*qX(mOzC!bo4^wOUhY_G1s>@?Ki}m+=-m97q?95K)k-|oP)xz=W{x#9Yzyb@)VWBntfiI_e#@&*GRrjfx&N(d=(!4wt6I=PRs23S?}wk zQI^<45XiMg@ND~WF%2x#{9gtBT8}EM5w>);!^PjF-=~92A&RPx4f6g`%%glL;WWU5 zWThK&*bNodj{$Qu?$m@!^`mw%CId1QVzYo;W;RGnhUE(O;jFt&H5d+1)f2yPX{;-3 zzb8ZHii(eu{pr!}sV((b7B(aElK>5>n=q3H;_J6gg=UhzGJOM?=$RN52V5^ z`?x^v=<3Sxp)*+0fr>?%LJM!JnvvV0=dF~PMl%E3i)9dmAr%<;-!zEDp8aQo`8IE`jG;ValaRWUIpH`F>>;eStx%KKy!{-DFtvV{b^p_Y z3c!l(7LwO({a`!xE#Is?-nKcMDFlQsm>bhwumX*B-j5*uo^QU!94rnW6Rp(D)Z##3 z=~k4z4>yhsO3ndi#9>t-xA;t8FV2UjlJu5Y8}-WpUGtyi*|b4!d#jexq<5aiPRp}U zIV=J;)eF0-%|IZd+xM#_inT9LS}zUcV`EjbPffug-q+PwP{(ouUm8pcPxN#pl;CX) z83HW`@Z9I71XS<@SesdiC>`UfP|pF#VWc3{iTh8KA$n9SEHoeDzx6pq^5Ha8%LVG` zFI8hbD(K4JB6nBGwm?CZ?3zHNg0_#b3fNku^V+{XV3-gTHr6Cr$VR~R$;M>;+>7+} zi)gATRNHNc0Bau%wi&<94bKWWMBTSF-<2lZLi^O930baIc%w@)X07n@??C;^4K{v2 z2gv}sBKI+C5A9(Fl(fRGJ5B7${i1K~ioae;!;yCRy~E;L6ap-#bW;mJ-1sE`_2-|y zy&+tDdw=4N-MIBWDaK`%9f72FfFsnre=m$M(}!3+M_aV1OuOTm+59RmvYM!=uBIK3 zX#3O>ZPcqRz6A1zSjdeV*Z;Laz%~&EPlv17C(e@%Z0@5fhD)x{3wMw4!%JlnBf5x(i%F#a_{XFw?p<*FL6lXKa>1$U0Gw=a4!GJdvw0 zh+zFJZ8%{AWe}a{Lc%tBa1x%Rf@JRcNyVv}2gO?gYV%)w@6K-UeIK=MOK$zRL^UeCe$*ZUX2$~+|(!gVtYZilwy~cfmRtT&aBdYse{|+O_$cx}5-MYS9 zSsBUco`w4~vJMzSCq%+FP{y{aB;n58R_$Bi90&RG>z$7z=0)~R8t+VxZ9y5%4?bF>7 z9S63v7stX7k27*fMYwoZy`1VuvLd*;mWY&Fp_5HQ&1r?`Qg0EG>q!H z(wnuaIXdXec?9Q0kc@|@_D(Bj7)BKD=$n&%fw@7yN3cv%g1S`*NT4MD9nO*9OVA`O zGX34M;GCobFI|)=Apf8+3DV5?SNr4BM|*3!Ld`F?sRyssKBSw5-r=BsIMe<-^vVsM zSUw|6Yo+tbz}{7-NWoGlfr)ZdUCMF*H3y-9(??ESZk%{tMVG@v6IyG7~kP?K-Bn3npcfL|&{u3}@;!Bso=9uxwMKCs`t!NIySW zP}PdNPjH)v+0_A)^XGhDOXQo}5j&#q%^}gcx|)o!-eEez^Bm*sN+>}z_-{Y_^x(7O z%8xVDm7cOC0eeJoqbZ>|DsPkxdg=tg_xOaH) zuevl8vGjq;QOofWFEeiOLoY=#iM;%6eR}KR3#@n-{f%%`Jv=xm%nH}I8C}#&>>s3dFHP9#}@Z^x>?r}YNREmf89HEylQeu{fJ=Af8~Mq z)tPTShTGB1Yl$`JnyT)-)@EKA!}q88dSAPaY|_O&DHrV1X%}4c^-irmYKk9S@=OzI z7fv)g5n2>X8FY;h=rI_kJrX$98jdZiS&O0djPlH$h)R&yH`mH41e=;%>hpC_#!Mc} zdi!W@|9B*gONyuO`B){)u8VAr>8;LDg0Wm`+A1s?2u3eO*g`^x4j{oejwgNd;Q(@x=bu$pQ<#c|vEgy!G^K zyTN93>ZZ_Fcw~FYQZz*2-(IXeYd^+QBH~T=*ix*Vs*~iJCc48y=aJD7Yq{8yA%tpu z`#Vqfi*+t38nDC(6n_=6G)U)?ij!#@00v#Y%&^BMTUk&nA#dhabqebsU%GePMD=VC z`rM(j?P=&5X>hod%n1FdKc3PE*=cmWYKs_d0tow z5>=>rdLgZ9XaHc|cdZX}jvNAr)g;bMT#41lK}I3#!fjOM#Rd5z+AYEcveSfZb9K1!1Q#Ra#Y3mF zIei6#Jf~h++F^b_j}L0;wtfW7#Nl^mRlWfWk5zs0>*4oO28F*y(VCf6>dU`omZw43{l05~@WTos_Qf0*XWuov3R%@_?8pd6j~0%jSl<-Y(rTIhmIEJ0a23&rs( zLRn+iOqzFZqQ4`C1mA80x4e-~3N+7NOg-1KfBl2_D3B*iP3w1s%9Pjq8kO|DTPC~=|Cpsm-^g>v$(d!^|;K!uz-?mnvwnZ%3l5)H>lz zo_WL7er=ikN!ul=fhn=BQMR_0!z3%$Omjrm7x6hG*ECjoB)3`2P(C)pn&jDI*vF&` z%{<}PaUCtB`Z8F?ac-Bnex2QeUxT~b=>Dfoat%5u7mUrg^l(QmfCQ}qH=gu2l;6JR zWxE(dXK?~%3&!1tucf>s3cDwXG|1>&Dgd2@s<_wteBXQYLgV2=x*Y+VI4_Ycu(IS2 zed-8Ag@z=_63RpF|J4GZXKk|Aijl&ASTRH-X6>JTYQji%!v9e^jYLtLpKft`e;Vqa zYzPuRs#@$*-7*zZP+xig!<79`qpYJG6zLSM0vFJ_uyjlr+PJVMR0fRc3Z?GVLI~tZ zXvie_58AY8*ods@PE6k}gJw+W{*TiH(1zRq#pT%m(R2S%q~YEiZanA7;lTCy$M@1I z+8_&x9de1qW&=K!a*x9;>|5_bF-oQk8J1}%K0|w-0UZllFEL#?n-Z~qB!-ABAafa< zd+fRc6q>~lX=HCRormm+$=gT|x+e<Ol`BhW^FvpTt* zDOw9o31zfYR-K?{x#mzuyA*i2>XyE&KRm=To4}Hw3 zNu8-&j6yG6x9Ud!%<_J|+~3+|Is3ihHHf=brjL0WqKGHtEg8|%47V&IKQ|wf zIMG_7z$+>0qp{l4(OTUdN+MprK1k6CXaGNh5#Pb3X&?YNJB?t{v`(J_6~ub#23i`BnUL0V1X zw1kvi877D81EUa1{1<4Hd8;=3WSOLINu!W+(r~{l^Nu>pNd8f_Wjq26%AmKfiP`Un zqZUx&8`#=M)vFUp!@Mz*Q&~p`Qqn|ar`l#M_9gB|LVk>`6xjm6ZpUTAOJy2L5J4tM zL^YQ+(Wg4hf%L;>upq>EY5puZSPd|xOo*{FicmfPw6xyLG?ps+a9|#k-3n3Wl`F}3 zBF&Jk#>&VUD#Np|ALD^4D?BN&>{AwC5kV{*gT>u7h->z$)V5Rzajiv4EI6{g25^J% zRNyam#b^x-U%zfm0OAKJcYv9q0u;^GrVXEVQJ}uE7bKBJWdtoEHBg{t3zi8)IG#hR zBW)79!dE)pzLPVuv_scQo07`Gx9&>2@7W}6)7#K0Viw(6#7nxt$L7;p@{&kl4oO7o z1AvE6)Qa3zha4RF16HiYhfqdP61T5NaJu0}ddj~z{V2^$as`hrM+pQ=)2(_dY!yy> zsG72yPASJ=Gn88`#b64lpx@H3YpDnty)L*O=lW6D*0>@(#BuGT^?x$mKmC44dh0xd#iMZ!_Hy^9t{>?>&Dl; z_U|&18TF8FawK{IoseV{_5!lc`2c&N4Rm!){DXi>Kq|Q?pDd*Stk&Xb2tmzTVk#}_ zqH2KfV4GzC9VL9CyM7v44}ogW+77lU2|-E zUZ%od&s((rd(4X94%v`B{D~VeQIMZ2sM5^nJjlR<@)6WoVLI}@l=V6I<@!6=j9Iklg-jy;$I!I^?IiG}xlZFTk|p#+_mjji&M*QD zVbgP;cW*$L6F;TqE0Z3UAR3DzYe~onu_&Mn5@iyLr^Ms!H?8c(@k)kE8*c^`h7!^# zldYaF%1a24Mmk+PCFf3T@k|*6>I>`IP%D%Gejir$eDC*xov?fQ^% z*MAy%9E7PWQBL`Q($Tz{-|X7S&jK1Hn41{oywKIi6sTlNj0KN!5y6*vuA(TSfC9&Ah5enuH&A%k8wetcx&c>FHC=cUIjq=7ku14bb1S}4~QWrY{B z%@uG`zH-l_YrW^tjq>riH%vx!n~7Gxo&>0+b1v8g7-vQbq}pc(J915{XYYVq{hb_$ zR?kvOVnKu91UJL;W|DWNV28+-KGnYYpRAEBG92}MR$;iVu8hgdXlmkSrE9zBhFR^+ zvx#CuC2#Z&tn;#AG&vW=-A)#K|BGa+=5Lz9nU=Czz*;q9 z48!GlA&9jDlIv&NZCJ!m_nX`8nM8FLxP!T*$yWK)vAiWo_-*$T$od5iTHZp;R823C4B>&BxF8HKN8~Nw`i16sO%_7sh+I?7> z@rhb3^>*0DS%0!YK=nP48FsN9;lQOJ(|s@L!UEhhz*@^03^57&LMg>~Ky&>YT`w3k zs$U_L!Xl2Y^+osYr@PM6Q$2O*JQPku5xW&}aY0}XK_;Z>U!VPKE43LN7?>Msc&-SS z*MtQ{(*Lep7q9%i(Z@sdbv>O`s>Eurt7{4e+IW@o;MCE8M@a`ntmfy>6l7vkNq9(l z^}pDF7Pf;5i$jZ6`0p%Qe~a_h-b1e2yH)m6(szm7955?-UFjJ69lh)`X^$+XNQ#9) z?e7S*e!d#)^+V2zb63aIyD!VEdaOYh%Lpc*D}URMo7?SPQ7=DDKxw1)MvDKA`Fu#US?a=~ z+3!7wCw~He8N(S-u(Pd_ToyleGGQC_O8oGEN~cyztdiS9bGWnP%8fT8jCX8HKH`y09+MD)F=L*5GGYrleSvfsgXcOc$VQb>gj58HHBA5JFBMa^93Gb+Bp3xTnd zxCU8B((2p$%5rZnxbku!SUw;ju(>&Kfcro82hu%jG;J&G)7$cnPh64N_NkKvH%=TC z?qSrIFfs-%v#3i6R{0f8nFWz|CU_&mTXm)*KfuT2(J1Enpp_r9ISu9FDR=DBWC_8Y z(HzRX|7rCoa+_1L!cND4Q0YE=ODn^{Kz2`c+$$13+9C&+9#Tu&y7SlpV`XAmiEHd- zU)w%r;^FN69|m(zq)<8GW5zJk?to$BeP zaQdVo(8DJ!S+dqloQC#7FfU}@Q4%Q}$U3U{Uj~nxZ2WY=`|JbxIJ7gsP?M9w?Z{J2 z2fhXKqoY3gkx(=Hh2PaLhmnph?^$j!*aw+cU`f7)(SoUZ_s!I-tD-rrLk+!HNu9Zp z;{)p#&JQBa3oXb%r`YCIj{Z==p;@0Th?neqCOh%CKxV*JPa61zD0sUp;YdUlD}0aN-)n zV4TpFnPIQG8Ff5F(UpM9yA&zoWZ}|qX|hXl5K}Slw9IoSo{SU#1uf!!jaoqBU!>Al z$6#f=4B*I-$(^M>6_M!_8qq<-w7~sG_PGM4)+ksGiy z$0&ff@yp$!_Qg%R;}$Y>K)&<-9#}U^1D+ZC`qSzeR+6K%f9Ix9-wVEN*bKlSEKp`} z>$DjvA1<~1`2)a=#@=O2UXW+GEJov-LW#*j5f*}B^f2!xeTr$1uYx#P3k%mq`w9Uu zWQaGZT3tI8h4wnpga-#HD3E>QTWplPf1_29 zlrXc-2k@;ZDA!#AP0&O#N_ZBVW1Z1`#vUpY3u`)INZYCpz|$gfA0D5Hkg&C8gIwfp zTCV`mCY=^L03IurQk}&csShM)%(NeI(`z{c;vOYRD69$3I<{kaJHvoP2 zJzNofC-OF`drP<>AOeM^4_^NIiKqB7KA~m=Ey>~QoUF*p+?>sP;SL^MhY?PK%{Ky& zp!Fa)B;-d4a6|}cM{D#)mJ#R#DQ*}{3yvMUcNsv7EGd$Zv+cVxX*(e+1UG&~-a!}| z03>d(g38$eDewCes<)jz5EQ4QDx-j@g0YfHmnDgze!`EMDim5z8j|@NfSjL1F|`Km zb(GQ?>+(%QPYH!F9+8KO$u(kqszXA3qX;DbW4g6B-An!@hFd@cEvJ-!kzPlpU-bp?}gk$P-%=?Q~nRu-aMMh_I(?V&?d3BS*E==nIc1F zNXETIG7lxmEL18gWuDn6wu~Wjl8O>CWQ-D(@hMX&5t0&;x%a&KJPn`k?_KNr{_$I@ z^(<>Yd${lGKCkmShvPWTC5aJZ1-kNLOs_r|*z-$eVG#ScVc%A7KO}$74clvT4B?sz zMj<--jZPR1(kN9rx4IZrn*M02jX~m#cnzbEPyh42Q_hMZe4}>lZKial!q`I|6dKiB zLD`9>23jo^+g{$i?{==&Ej>RiN)ATR=|>*su|sc|TfaU@31Hw}N>bbyKblpnL{1EO zBIx^!VGqtHbv8y5S72oyM46Shdt@gWMPtZd$!nhT?CDb-S*_$*v+HuHD+yVv&H0%y zH;a#Tw)SJuEz>%Wcqx{9M;Q|Bnl?x}aE0bG>zR46Z8Txt08_xKhRn?ta@Jcyf*?p& zx^b;50Ecm{VSdx2{xI?Vg-Ur33L1XuePZXl@VYMZ$F2^Z39_-{TUjX&iaSxX^F}{| z{KgUEI6>9pmma_Ue!WyDij-v1GICe-;Ovj zi155f$q2+=RFV;v#uCEEpbs+jI8G=_$@a_}?MnNi9kF1Qqt90`HG9XcKerHG#E`K> zE5@Zco%M{o#Y^uwo^Z*qn25C+@h4D>CvGrlFKe=V;D7AF_>T5wyd&MfHTd{o@S(v9z6A%zMcy53+hPv8M`EUbvMBv3=WLpRMMmW5d74 zZ}D!qfm+@geaD@7$K`?^B zW-7K%(S5+lUHxLfs83=*>Io=-3J-9PT^~O4e41Wp;o5iXLRDR>=zjjTh|HIq!M)Je z(7T)f$qJ65PE%ZdPF3)SPwa@G9)GmMokIOTIp6`jILpy9jg_T*chg^g+&yJIzEdT6 zZQz_n+r~}XHXEyCo~4CM{d4Vi8$RYm(86`y$liF(#Y(EqY3EU$Gtuk}+^C1kmx?qe z+x;Im(1xC3-iv>~*!*^5{hM*_A?B^rfSFLCK74dmbh`|npNKkx^Wt^I&F4ZbroF2+InS2&pjrdfo1P|Rdp9at(aThWPU{H?oY53YC7O>^T1{RZ8o>j;C z{bY8~eikd@h@><%aM&~Jv-LNKF=T(P{}I5KF`|0PO17^J?h7NA05K!8L^m5NBf2J0uyk_Ph;@YJduNk2y?pi;c^Mrz zW+*r>D|{hbBQh_M%Sz`u)YZEb*H#i!-fvt>9~YUeoXCygAK(4rD^g5lho0Z_KuEdU zlNjGI1Sb{l;1>o~#X^{C<5z^ex~D4@kZyLvaCb2Em9@&V4CS5|D*-DHJE{^2<@k-L zvbwTgao+)j5H+=hZWH;|`r69ix8VAPnRfGUtsYc=6wHlvcOpsfJ= zjj?z}N9pUN@9>IE+qiFitl%TDpzKGxi6PgFtOvVyRK{w3{5pcoI(v#3Z9KCz`Gn!} zW{17g)VXYkayrU5mm`dzZhxkgB%(IXe`(Rc_gmB)mx({Mwl@3G67J@Xi~foy`($g1 z=V)bLRXsIJ^0@qBx27!N>3t!J&V0Dt$_*)UNA4v|Q(}u4on~9iBDem$a&bcFwA!L~ zQHMn2@UZ!-E>AG(N!(k@rYimYsH&@XZNsoVs`hRde}<~P%op4({;KwF`!}n2J+s%w z%kje9^o39QukMjnO8JWX&u^?Zb@16aOy~94ulCcc)%13TdWOU;MT#$6=a^j=8`mz$ zw|>>5Ff(VH80Ip~jBh$D|9V$w$f{5JL!Jf+I|OL!N^k~*BtA#|$dI6*PXHLqCUY=Qurso*zZW%|^#o_En5O8THIxPOGEaxUA}|YvEHO5jcBmvd_#+aM>C%JRe&A8W9$Y z4&5w(AS5yX%HX<5hsn@^D3Zx-&ZM7D>}MwE#CRsJIfnG(%jl0oUK@Y>7^27r7ka$k zx2>J5A}CG!W2IiGufa5wA#2~;*8FoO+>!GAH!4d)shatzqqZJmUlehni?`gU3f`)< zT*2myvRhb9=qdW<{bj;6Z3W}P1DI02cuq;aUZe9zmMjfNjMc~y5f+1?eb4-;-M$ZfVff2Dl1b-2N#_GB`bwCyaj}$0^v8CHIY`XUk4!i=AO`8U(YgDZ`(EH$R?QceA?LJXXK9RZbfg6YmFQm-v%(<5d*lNhf|7e zzG5EYZRL5TfJpsM)Rf2{oUPPbXhOR1v?W0=HrPvP9j$zQY2qR+ z8E2Ra6CRR#0hj&i`T_2QNYBF&cW0A-HzgppeUB35{lTa@SuotDJtk=c`DGb8EjOod zaRpz3zuGYA2hq8SAY^j4dx`zqqDb1NCXxleAFmr06HQusF*ycUHJhy}#kEora36X_ z)#dkz)Sa|s-jO)-TL-0M)DrJs9us$rA}Q0}I!PiJi+fO7?SX9Zz#k#=#8-0lk;&uv z;KQXkH_mJ0che5B-jZl?Kd$U1fu4={Dcbc&la^X;Nq>+zS2Dj;ULYUyYgw9;HH`VU zo_&LPRs7oR-s?ltmcY4#(O>6FR3X0+H-hE#7WCnirVR)4)YiNX*m5k5OMC~Q|D-v< zSt^TwDMy}3Duf*=KpZsYJv#C;{0(JbYVaLMPGwo*%LUz1J&m_hv98WwsevJ zCNrmrdV?+yhFM1Hm5szWJphy1uYEHWeX&?Jg`})=dkZD#eE^Tirlg-6yO+_msMPc{ zP559S;M*Nbq<`NCMT4Fe0MC#43Jxw>pQdQ=BTxoO`nV8$t_gvc5xe3LJo2&V+q0bT zqYCh&(RUu3zj1(DDC9X|;LHVJdW6-g$}ZY#hBhmw9&Fp+H!+K#^qCqbcG3fKwlI6K z+ykCE1|f%Y+Kf&9FZWYE=#4P8C6(oJ=$)vB{;n;`y9>mllN%x-VR)gKdj;Z75uD^|JXz_%h(+@-yKIO4))X;XaFK zFTH__7gt8>SllLj{}Edx(Tr1)^2^wQFiPn?{!gzYK@1jK^EBbf<|s@v;@emryyc|_ z*0T{lDIZi|F^lT2Z;Vfn;NoylFcBZ&%pZYJ9o}i4=LOIgJRQ7KE2vOP9%00VPg?zU zx*Bwzqy`=SD@uucb#1%1!b)rB37Rv(#Wum6n=kG$W-LNj&f^NpWN_tZyGY(ye))zg z0=~WJ%&UX2eRC1ycK&0&xt@qeq4{yE6^UOp8erow(rnYXvjdg}8NGv9 z(!C*E6zSgWgVU&N{2S%3kp>^R&Zr*)Hqx97Khk&5ee{Cys8%xru*C!C#zYSe+W~7aF41CP>pGZAnaC}PeMy4k=N8s3nPuwUjzX6N%4|=Dn zkbjyAyy*Glpz>b^Ie>ouvi^1s36!CxCid_`Wsq3#~-l9`&3WJ!0jDJ#&B$(Rqh#dL9w+JQt&{f;evB5 zgd`32qI+?vJzfI$(Txnz|Cp69Km6aOcZJr!woRoD;srtrEE+zlZA~!T^OP_~R)q$d&z6=4ez5pQ9t`aKz4%1rg)rLA|h<3rXLmC#0$`B0Yze>PPRzV%78pwOqh3yT{{4KPW-YN;p zkTYU_?9XSZ0`OA**PekEO}IUe-UL0^U@$}(Ot-`G2t3)}|0oFa-c=%;WK74j|1AK+ zJrI8Q#OvyEZ5F*7Qs}ru^}#68`^T5h-pKIO+jDE&|1d1OPVtriSYc{f$RFoJrod`o zEFz+>>_k5magY~w2?sCyg7!gs$>Kk6{IfkIY471@x^#r95bICXccBtyLEVsEKjUY= z22`V(SOJv+X~8kR+~yoV_E!sg;j1#k1i`BQeSmmcFe>eAHuJCyu;0Y9%>xLs8jm)T z2UjD+!AR}icZz(|O47FEC7AeeQXupG zNoSM&m06m5faN4G==)>syMQSPxHN6jU*;UWiV=Xcxmd|7<&Jv~r27*&e(2A2LE~cw-0~z_&+K0h7g)fNo|r?2 zbs{#{7B4jwiy(h--7ttRF=>l#;vVkl`agFKB_z)!nZDJOjWFz}dJSR{f1zFaHa8JVqDAc1NEQK4eeK5{8zv(HG=%ay1c7b0 z`~>R52BSGyUsco8mt8aDh!<+02Ftfy1T>QA7}>2 zVr!S*Zy3zYniE*-H8VOtJ^0|k`H;S+fzTGN5SZ1#7Qt#Ln-s#eaxVMG#-(K*;4g}z zs&)J#+5Kf=zs}5PwAT^8!V-?hUt~?>4SxL-m!!3)kO1)S2~>moG=Z}uy4hS7Hr9B* z2v(s}-K?+PiF`I10_fG}hTx5&d;|iDi^&^b)yIZU9b7g%Ny2C1M>0|to14A9*A-hCh^~9bcd&g z>+4T+<%S=rIC(Wn9SBy6!IX8QGW_x=%rld&=iPa%uT(b>qdkB2C294RZGD}9%*Cv4 zeQJZ*Lfxmmv&gpln4FF}5tfynaQ%3%TcKkEmG0Yk{_AFe;GuG^J3m6fqkdZ3fnVEJ zgRT_4bRfv8Rvev#(Z@{*=p;mbTo8YP{g1KZY2(GP1xjIlB)aTd#no+O8n4U=5+boa z-SA`H=tp8|9i;<%f$9Z(pl`}%oYIzeVN}t=r^y|)^QP>9P}falql*NmQlsX-Y?;~0 zs(V0p)9pZj;8>m$o(%*Q0RttiGayvbF1?I36S#A<<|Sb#UVI2}8^ut=SMcwK0?U_! zw=M1CO|U5xzg!Vo50SeUzdFRc37y&LGw(XJd45aoX~H_36>ZBL4sQ?#nQN~)Hhh$t!LGcbW`dd{q5?l5GT&p7?`#U+48QAb!ot?w3D`z`maU4X zG8nZJzXK1jY~mP@!|t~_P}KVYCeq*8Q{9i48Cz5VsQi0{2`!_tx{ zHljg`y5XF=>7NBB<2~t`xFU<|*L`9*MlW#SXzsayPyYh4Z9thywr%AfCsngiOAwUoSUs4|^7tO-@Vzb;}ob zZ0q0ne~qy%!|V(2Zq7sSc&?Vww(TY7pd_Sk#ui+O)2P(scZilPSe*LjRtlp}(zMt} zC-iFc`O{?WL%uzE>j}*zCLAt;!oZ=wJBp<5tzg#>)GVoQ-+C`Zy{)C!alRc`afgM} z*XDa(1M`W!ojv^IWcPJZ9^60Abj0T>Q(=q;MrTWqFph_CU zBFI#(t&U_4EYmM)gZAIcG(gwH5!pHg)vHYHtzUhg`%{$9en>4m^Zv48GW&VUh>rNp z)KE(yoGak8Ma74FrtXMJ(X|ko@pObNY(gfq-=CawBeUuy`%|MUPQCtEV0i7g7W*8nHX-51V;yOYTw?ZOf!5in37HM{woz8(>) zNIU-kx}VTkyW2=ymZis=%>jSz#i)wRhU=0ngvCyogp~uZ7-pMAjbtkPSG>~YsjCk~ zn(sLPg}d1B+Mbs(R|BYS&kvT^Ohe#stS1qgR?hYcfOS!rFFU0G_wGzGn)(wIXtbi` zU^eg9Mmdu1!5Ah8y^S}(axiT;n*KX=K+C}o%aMaZufbC_cZSr6@35NUhxyag1M805 zwF`C}5GfGS`snuNVHKk)VnRtoO0q|`)=I{;vaqDppA2>c?iCGW7Na`(yx{%ebV)K?9`$rK~ z!0tGtVV0m2)|rw4-#;-<-T|S;cYPKurXJiV60JF&^D9olW}RhZ%(Vq}v}cCg3f*Iy=6Hfb}d`^7+JI^#ZYzUAfxyH=i=4eNg{@bGA(-!cK9}0XIJ((dn`Rq}1k=gW~xd6g2Wh+qUXIR0HYzA(%XO`&na0w?D{N9Cff#lY+{5_6QHZ7ym4E?zvxla{8;UM`g5AV4TRmeSG7E*sx zetP&#$+0V)K+-gbep|!Qjdd;rK^big2d15w+oLpwFf+9Q5Qi%q%{sl(s-e46*B6pI zsaJ6mx29f|JSZg1yL{HcU5^o0N3f=V{ee)zwxBmh<<9l}S<|m;9=N}selY9>w45`3 z`|9-#$s&$zO$zP_%i^Oa-mP>fk7wkr(<9!%k*Jq{AR=&7Yz&r# zSC#NPW{z_2j}&@3szP8U2+X`^tmqJ83%>$XRGMYM?@YL3i|>p*cV*!>E=#fr`R}$> zKlVOz5IHay{OFL|eb@d`n}FCN|5L1T{OnQhv82P_Y@FClw`RN#4$wk7&*j!TVfQM9wb4itkUX5&TPd zK|FxA3LA;##CSYQ@&2Isr86hgfB*O)-%YH7yIjMz7sTOO!Y~?P;%alxcCvTV(5g--Z#69nQTqv;9Vok^1Z1K(8~=Jekh7IZXA2HG;kQKQ3Xo8mgL# z4a6KVv}v5(l)|W{?)52kdXv=C82@&!BKg@6&cHLXOKewOi#1abNGiZhyNvK5L9B5* zPr+-Mk|(Zg*|h>nXBw7i>bvubsU$zgIPV!W@RH1acG?<+83%pZj%@Z0diL!gVmQ{5rkh5QA=ONEDWU;{+w?QNA&fqG^yLky+pp>a10zQ@ zEWbi{T?r)0RI=vvi*CX4>vQTq?*Eg(9Rc%yJQBn!m4nVT%IhkRhWEW=AM=Cpa3=-5 zD%yqi#wVw46f~IxbgwL-tt6pM*pr=*^fboPltGEO-}+paw&+2;=PFDDJU@gDW_{SN zb`ykDK0oegE;O&W;mkw|@*yQ_Vsm3}lGvuP-V8KxcLy{*C|-tx8d9_E39Rnra2R~P zeg8$NSA%@(X}^85?cK?YJqEc3NF-}ny5w-g*x`t}m(V(De-*i*L`r6vZp|0;OdyG=v6e*hs34UoU$Y5}pC_Ea;i2)UC2>Zz3=-=7J=dDCehv@^+C;O;}sM zuPuzpqd#UIv8KBQH#9t_ImM4xnVBMLv0eB))Sp{&F`mZWVRi9q@+R7lxZXz!NGoN# z*dRgODI73qd-6AphJmtI`m>mmu>hSW$`b!}& zQ9+!Ks0)POA?K8%$Hqpu54IY&ik+E%cQtBxBuh+Va{nmC_%uWj_r3HI2?KoY5f%IB z@R?^rCB<0~ATey$GHZN5F19y4J7gqhVUOe@-B~)=e6#> zf2dRAP*YaU;@s6lVQcns3-vQp{}$DOyMSnBj)_Ti`n;1Wm;>_`3-LNmih`4hgB9-g zOY!Sp)uLQ=LHwiK-(h&|YpBF)aX$CVfM=H*PhR=?P>%j78)1VhA+6^~N$U-uX!tRn z`EhxLW@zQT&Y>aOx0xHibNS^vX1b(9?gHXzF8?=-7z&X!ERy4eu@OpS!TRNYN~E-y zv{-QaR#VQZ&3SIH{Rm17yGX4HAj>XywLzzi<^|&a$!kL~Z2GK>j_j6xh!!1t;?Wez zF*+JDfsU`H-Vddlh zi3+<>v;kqF&7Ti>B2hDzcal@BSPi=w+q*lZIl4>&eyj{1>AeEpp=@Yqq;YSp61h32 zjm%y5X&6#GQASyJ-uMu|+)ETy%$AdRr-$p-^YnzGtY(oQ1idhag&1JI>E$*tPO1zq z8EW+r&XPBg@y*O4gfOPCORyq`6BC{$h^1`b*gg#S)e1k+5#y?7YQBwSuKETMy&f>l zNsJ2^s~RTeMijQNN|LYRvTE)YdiE~LhmNe%iVs6@ksqY&nGW5 zhR}=NFvw7nOHJB;LZ4HYj+lG$>w#K8_m8R<^lb*h6=4!*(H`T!ewHXmFvRgPdSj|6 zg|_-@I-~Lhw9KMe+$I&&$kM9)t<^Rf%%@1GDfc^4BWEX~I@a}pmvxY{o1>oL`E&D! zL4}*YZQIeY-?(n*l>D23*(B06fzNWKFf{jS>0&UOk^r_(n6w7n%VLlh8sj3xYA(E+ zW63fI=CBUZ)h6pszACW=-Lf#^OVYlPvzhFwlvZ)FgeHIW=#>Lf=^vX3BAW~L3Wx0X ztfDl9@M|x=M+~p90ywiQoj3}%IO^T7(+UdNMAQ)-!DiS6?QIgi!e~P2Q*Q%Yf^Lmc zR*zxSTheP$of-SM!VAPN_#7ZGE^nXeWKDe;H%=DMb?^S{7K2gDhhNHF!?WNX*Lb{t zT;Vq()xb>Px^ zmK)SdB$V$!E$mnNPQ;2qpgLlnK7c3%zYfsns0#`w>R-+qgAg;+V96R?HfXbGY1j?y zAkyGG3X6hQvX$m91b)9z4B{kXsaTUy=yL65#1L*kv^S>qU8YsYo^~m?RgKJD4dcr7 zCt$8*thPx1J;zAoJx#eHE!ScAkteE^iE9QNc^c>U!XOj|ad#0btOJ(DIGZ=+$HEM| zm-z)CxkP*{E5K_eLom3+BiGaxI@G9kMQoM|1U4&)x>vik`DekL%CV6YpK#0rh|goR zc0to5osC+d=?mhackM}SBh-|$6oy3puTOeJAl_rXDw<9qxnz15FzTw=3a%~S{8MA4 zQdeCxJuo=dW1ke|k2*85%m=nz`~Pk6h^Cz|(s+s@D1((d^+XVTerun z$H!8yV|l5`AyJdp*I}$x-~2HktLSQyt+m(?Wx*PxY1sPZrw1J4RF9ci0-XY-*O26@ z-FuixPT$~f4>jh4Sx_s#KiLqn?U+^d(%iU8?mC`@fR+0uFpD*tBup-meXZ;Ksz?C` zb_1dHEwoTN$mxi??P4+JnA1Wi*x^{+@OIteaG#VK)Qaf$-jV#<*#5;g4B)`nPy@S- zE&E_cDp=N~E;sEz8yS-YFU?$)d@_N0dRoU9$7BNCaGF$n>YG*_fn1?`TZrF!MOZW= z3-{<^Ay3%tO_?Ave-PH8zJd-2J5DF{qZ_JPOA-cpi!9oc9os}j_=r5({RdeK&X1@TunFhlRt#-))gE@7 zQ1gZPeRoQGfKjI0n$RkF$kxAHTY%`p6i>m5VO4d(WW1Rg!zKrdt3GT^_i5wmuGeMH zzSj8?m88sqQ8O!d#n^RV>j+=`g-XqErLar;$_T{GxSKI!liUvjKlRDQ1hvd%TZRVd z)a1DDY_S2IYxe1DYC)A`r#w^;I1e%AGVAp72NwkW>4cVFL(z_3s|PY@YbcDfdEevj zp(kRYB>b}CQNV5JROI5F`8+6V`7$zAWt5WwJp>T9l$A>&NZIe3-?m=5|6hpJUuV$> zs!duSH(en><|_?#)qb|#<*Vq}`ESRej37vxjFX&4QI1Vu!3MiPm0t7({>`ovFP}Bj ziU<~bu7*M5rfiYa7(j}@Q#du`>cHAfGfV5aL2HYNcOA^wgRbk5{N$2fS^)D&C>h1w z#AssVLe{)d&x&GKql+WU5D9Pb^LQ*_U`B^{9O~z&Au#yi9<&h_E+B2big;Nn)59_i zn@?YWY^CpDx1zf_G5qGBC6~Q0%%m;-vD6V*Q78{WwP}p{qoKEhWwo^40$fcNuV)4o zQfrVJbN5kPp!Yr?F+f*%$cg_W2QS6#k#6f=ioEXLRRT*q_0p=jGg-i4t6Uf_aZ9|C z3nJ*tKof2@PrbXKm32SGOIt-O8aJKTL7jiN>a{pypRks??~<1QM+$YEvg2_nCg93&fm+`qZA#v-!u*GOU#OQybMQowf@(-#vVX_}6}crXaE5o8s_|Utlqa z68;xHVAO^uuScJz(H7F;YjK-VpEf8PCi;fyO0=rBl0_JnpeK4_)=+k&6T}JAu-i^H zHmHxLFFBi>qqK(bXbO%#N%;ol_ZlRm`^K^D9@ImxetHyum%qzzO2f7#J_blH(;;SZ zC^=LG*nsHb;#fWK%f&?K3g~`H0y7PXe;X7{!}X9ZZ{00!!)|*{V(3`wB89 zgX+A~i)58AP?|F6kGweELZIUv<)zED`$6>Nn$B1c5l32iOSf;UcBxGW)k*KXhM&GV z-ScMhe&h6g`6m9Q869uk#Beq38nO6c2)OlU=FFnPaUK+jr{X)AL1fbX3j5%D%e&rl z#|8t*O?E_D+!J0)r-c96N&yT@I5?-u-uwj;w8xLY=~=q1@Y_xl{(@?i(VwW!6P2o1 zvL)MFahL=A4o|4OSl2~iTFfLg8p_?;d8lG?Z@+BAH-{FnnQru_x}{>HQa|2?N($GO z=JA$lkkgThwCt+%aExgV(RlBi`F8g9BQ=1u4<^fuy_ZR~WZh4r8RFcpU}8ZbYt=Q9 zl@ANv4AH5GOVk|Mt;ka}*kNb0uDtT7jw%)()^~c={>UofJRLi;cnP#^-0GMc$L9B@ z(YcCY>{?ZN)3aFOe8yz@0=%EkmR%U2bq`(8;CsJ2?x}m?*wge@tup8Jkf;tfb$#1? zxzBOWDbu14j@C;Jy6{$XEcgvF7eDe%d{8RCv}X5uboS*u?~>`kg-Erh>kUDESK9f8 zI?OZ80<`({!V{DKtM1x?(dl$Z^7lY~ah-IaJp#!)r0z;e`BUk2LN6t6DEBeJ zV$7h2F0ey`fFn>unjI||-_Zm!x{(00mn{olz!_0f@n7f7FZk7E_=R^U#^zr!9WHIo z0mS7%;IH#0SQoWXZ+4RC+!^MoHJg8Vuh8MH$cm9S&0Ypm)UZO9d<;1h1 zHwnteM<6Z#M1cGF-iAw*~Szba2QuU1Tq$czM%k_b3Sk!Z{sL_T;3q}4!lmO;K*Ldbr zxieg^D_Yw-%i`C&|71A-slJgj;kQ~3#WV5H!fg;V%(>t@?xACa>z~4FzriN(N9&ah z-yfxV9{CB)1O~%*MnkowQPU^cYcd}hb z|32z)kt3!F1FR_YWdsUp1zmYS0esw9&v5ED(3+ybg6c{%=FYqbk4ikWO_BYZ9y()D z4FBu5IxC>y{zT^pwf1hOMJ##)+6EpkkMQeBdx*1?7yAERA_~Hi-@B1aU zn_36R*U?=?YoGq>A={%%1M%`AQ=T-o`i8?I?c2>{~z$2;umWt!T^^RZ{w%U@} zzkXN)?H_Z!@}t!&p!<7n%ElL3rpCzNXZOzk)uSP2?}8{;^106|8`yp3@YRJx_S%I1 zZ>KaERS5JL6SyQj(F#4JweW)#>Vy}OZsy;9NZbLvp>o#z9K698l|MOe$RGFvfc;e) zZQTv_Q6+kNH4oh}$8k+(uqO)IiYA5hNt%CIb#^D*CTBH6nLm7EAu8b|rHR*i!gbf~ zc_j$f{qKH8aXjWwY&6$a_!87E2BXzRFxL1(+0in8TQw7UgPpl3yg?3ac!ng){2I7- z-R*`gfcyTBVN=B5U0-h>nzrzUJ8GNj+zvmF%1po3^Y<>9`Qv4SyAcYvY^t8>E8|f} zoiBI)<2-fIwqvB&JifBwCq9zD-5;tJaQPb5bjN{N@>%ll>J>b52W`C2NGB+yPpBsIrbB z{ggKb3BVx`EPbt5_jSvwN{{!s4FMCKga^RvK|1L$%V8xWaS4E%ay$GKCn5A{F3K=I zSP(7(d5BOYX!KV?iLnNC3jvLLliG6AV-N)1$@%pE9%Pb7{@i_Q7+ke}q1!bFyJU1{I}Nr-{q+2C=Ioi92fxD0|O@V#b@^ZSe-isx#8#e9-|A2!+vKUJMUxhS($#| zz6S7sDjC0bo1-39>YRnzS`F&i!ytsAYhD9xQ62LjJfgK>>C4*p;R_JjAFoUH z`Ss5TlnHv#xBPNAfDoGs!y2^Nq3WOb-j`yezfB#$J1BLif%0k%!ydB88EwcuA30F7@=`tbm21M(*g+J8qx;Ha`t|qQ;E!1?yp#u~i(!96s|eB_FGVUUyCIRQ z1;F4>1Zc3X zdoU9uKdqJ|*cqc709{%PV2apTlT!5@JVcJd=A>Fd)l6> zEv+3BP&=S#bx9^h@csTEweygIPaT?PEWqU*?Qw|;03d=u*FHB8O1bbL;K|u#1^3Ge z%P&;E^i8p`6SmX>*SFZF*5@SyZWL5EFU%s4)O#KcTYKNprwfxh zPkYk3G9_f%?{AsaQ!_jVs-xEGdJjH8)O$d`JrdE@05u%<>i~gR4Y_3uHc5LFe0a1U z=glDSmfpk$gSJt=c<+HS1)y;J_JEKm5}+v(wyO;Cm+vqiDQ$x>aIM%kVcAi>w#c6Y zATF(kAeHKJQXq_mj(?PfoD#(@w#SK2gx@I`3O(r!8qBTvP$c6kKfY)zIrJd$b}HTGi9l+*>J_4et$T_bIJ(WO@+ zqYEVW#%w1nA?&&c{{Y?e)pZ>{($=keFWxOb-K-LZzrx+ID5whaCr-qanI%sezZ9cR zOq?BkA{XSPcO+BJF(T@`FbD_krCzpV#ZlgGbilbMeS@Y7D8%cqFHR_m#BS5QSm&Og z?w-D2n5#cu0?PeqmM*7{%^3X*7xctoLx+c$T>Z~ki2kdgM7K!1@AR~-R7L>hJL{zQ)C)SNOohXd(IbW+kK5sME%XddT^qH3sgaBs<;u1=6D#~ z864K4M&!XAj#^RHW&b2p+5$M=lX0K!b4L~)=({ASI9aQDUabQ6#il^5wVA9 z`=d#%($II=tx1`rtbY~y(KX6b|45e}@PYNU%+Vw?1A=5T@$yc34aiC8@3A8^(~A&9 zf=m3ywsZMo4j+T^t|%?^hhMn3$F;IxHjA{)<_WE}ill?yU?+l6kEuEGj?zJoN5)%| zkw8d=uI%ED;L1=D%>a>r{BJR~t4#%*03u3F2aIv8QT}x_7yTetTUaVq|0$SB^UtDh zod365w&k-+?srRC59)Hfe-ig#Lh@4$cch(8Rp04)mJx=L?qumBZBa)W;(w2=+s51sqc9h`3wY{Q!LA{^=zh( z0L3M(4hv61<}Db>z1^xvCTSY$CZEA>P8Ga_(E|0`n~3AlQ8DCb%wPSvddeD3kaqtU zF{o>mCtJ=F*VvrsqRU26Nf0wqh$4VulUqjLrrh!&nA6Bf-qNIZ0%7nus6xP3S=4^4T=P3eljMY^ucTP&v-%_Gqyo@F=MZ7kmMK2pD^pEke3 zy?sg&SBJuh$2DoMr=^)NV37&3HZ$M)Q}djWg&86fcn zWy-0hH5GE`j-%B|Q1vAgPw#KV z>T5opcfjm}+M)Czt{+5k7Buc7R(Jo?n|nMc(`@~b63rn|YgK@!mx^XHEBdFzcKG^s z7Fd;b;x58jbFLiBy$Kk2Sv$@5&>kv%!$W+dtJSt&1iU}t5&joVFBg%q%cgX$BTk+W*yEDp z9qIpa+bQ6-OL39dPzpoX!&%lJGpwS5bl(-kxt1s-=6T^oegIXCW;=PbmUNVn5xPAk zk^P+u7=ft7Jv6!GYW`X1e^x<|lx`W;9HtR;E?6>Qo>E6C2OuRs!+=Fe#c3Wag=rSD zkHIo0;7%NW!EUto9rV9Wm_$Q#b5uemH)XL^EPzHtY}Uz2cD=ILrCKheV1 zShGOA&5Ya;4*+g@DYR_uIvny;XK&lFB6*pu1Tlhzh*53W#8)H-Om_z)o32|o6UYUC zewVfcGRm0igtjxCUly^5RbHq`U@a-uzOELzli)z%j(h{1sq~_gz@j)cKhd?2@-+JgOtL)5v?G@dcWoR- ze|}D>U%igxnxa%OYDw2mwh)K{N5KVhU2Pd>-IOa%komXk_eO1&h*XF8d*rvpXbk^Y z|8CIvcBcqN2`tUO0)34$WTcMujK1@prX@DDx0xv{Y9o;GdKS(TH`2na(_J};WK|5r zIZ>9{nWoL66W0RQmqd%`?>jFypybqAhaX{8(*ay#5dOF#wOE!LC<O^{Uo%ej>CJT1S&OV^!56-jd@``q*H(zy!fkJ|QdRhWN$Qw=lB zUX?7s(fljtA%k219LFc=J;wT7vdV9U7FUiirGKDIxfigL$d(T;-s5~6LwaZlGbGa? z?7Ma3L2gR*!lfRfBojU0M?S~nwi5K-UCFn|lP~I?w1aqqJcfuzphzwcuUTp#x3aE8T#7d<3>Y z>()IXqXE*o7oiKHlnU5vboz{3%c9)^K) ziGZO;|0tDMfSlF38ZegbmFS-R58=Zt!jPFKXZQ(^$2==$%&H-TgStm0f%bj zXk8)|FM!+>Q@KEk<_h0Dz-V`%WS44=RGw%NB;t)zCrDlvJ_xe2Tn zxcyWnCO6?j{0`XsGs3leZh3b5`OXk>+1`V`wz1OJW_CwasS+hR`UC!qcWVvP6{OoV zP9B;3;#0R7`-*>=q3M}(2Dc6^vdi_amyWJp zKJAyc@1t~pEl4))+`GQ`UT&+gwZu~7=I;~@2p>-QsRgdD@?67QrG!W|R8v%RNvk{F zsWN>L-j2J528`UZeb_M`$?vIqi6KlW%sMRf{v8VGQuzD{^0yozj?wI_wNEZ`Y{qbs zzQ2ge7GJHy*Rtb6JcXY^JhN*EXo4nfcKxageZmXrPfnE7Dzs?=6vaz)E6!2l(pL2V zKm4^Ll3oM@oOYC#sYl2%&p0Hve7Y7O#h3E+V1cX*`I5a9;s`qKDts2H=9Wy?ms#l@ zH7)x3kQuhsJAa*Y=D>Fe;(5Z>crR*Gg&~=kdja=#^G#RZn{9wE-zpq>?{q?J+%jPC z`F1>3od8w%|5>F9vDS_Jk#4B>^|i~oW;>{jFUWt1IBjPzBaC2pXGhOX9t{Z^ zDHhV=6Xrb=iM=3>W6M~_>ZR5X`It5g-O*KY8fE(Is&!Dqs&KnSKkx!aX3L&lqlA%P z)b5O94+vcD$r`c5yn1da9_IX_?nL}owhtNAmD{P+AFFRg*9hHAmt$ABwwxx(V#4kC zf%RDL=AF%vWesZp_=CgxVPjyzH+v<0Ij&B=Bt$7hmW^Nwo;-_>OqSNBw9?k2V)i0qvYG5xRl3}p!yb~ zY6;|P+|~3T-Fc%9+z(uUBY{38a7_#AH~p&YO6z5_C9X)Q#F+pA-u>m zG`zviOE{xwk=z{ooZq<0@YCB(vrw8mvwCSvxv^o7E*Dg_C{Q`|{JaO)HLAt6mu@d`vJ z_MTdqRA{mWiTg;3A{-w!1qm26kejmRnC`9`CsmAxvg{H61YXmlA0U$S-H9Gzg4?e7 zX5No07z2Lxr9sn$y2c8lJ*7}uZE3NAy?0S7w%T=P%?_;)VQDBDOGoQH+~<(@?CMUj z^?Rph1RCldEq~gGF&*OVgGzF$Ufle~{`W#Kq8Z;C=#}IDnTJeiv*E(ILHO()b*{Nj zQrW>&K_=_>hJlTkeGmNRMQ0uzuFgAxG|P(T_)LZl{0 zDy1SN2&i-;f)autDbj*;D&6&s`&sW3Yk$xBv5#Z_+v^W<$eedvF|HBkc@B~ECk6Qw z(t$i2RNBW_XrX?gFb2Ggu#HuP?gk)yZFt z7SBBv-;aUW%1O;XZ=HBVKoM!<0b-AOe9FEy;ZlJWmz>JHvH-kBXPB;EAsBZF% zmYij;o;@Gb1ZlsfnZwI6cwZ^>f~2}sGMKb)7iy8~g=~4Y6Th)@B9e|gAU5QRXbEtw zXINue(+Ol&b{E#}?paaT$Z+X!ZxO3*x=??iPNBKR-#ak7;ey7GW>3tTMT+OaM&HC< zv!h)r)jZ<sy@z>T}z@I`L$=Hhz78LuAo6kBFmA^W3( zdeq}RDYwGYLt+zmpnxzfdt7_Js{@?FMxTf&dSj{(I?eWtzh(&bdFUVe{HY5?`LMHQ zH7kyucl(1y%tHbaorgY4ApQ|b@#5Qy*HT*_?^Ce_ER~P?-XCB-8$zO(P^K#jXU1UV zb{@f>*W)3E|9Nt=98#=2rJ&xboRI{xD9et|vIiZw{X&&ddLcksp=|W$PWEIYx6gv4 zq26oki4&7V=?g59EbO-)qkm#9u(W7De;zJ+h8Txa%rIqpC(0>5rk0XdvpY}6`vN=B zAcIp{583EG^9aL_I3acuNiOZ73#_U?05heBXMP%}3gPJ|xX(wcM2GQ2Kt4i&oL7pX zPMw0pvKqXm^o*4)=+Ltwe|WK9`KQvL^24H7!sBK5(^f!~)9W^;#}K??!P9yvBM~MK z5yOzsIBmCymm1?y{&Tte&L+wCwK-WaOzCF|+o8dandMI+ne(^5;&``ki|9b+3|dU` zv-8%UiA*u_GKinqS+DTfUGq)hDWQr~RZ}c>Q4@-k*Ar)zn?3FF7d1gBC47|}q{Jyl zkIPvLU~Z-}vhj2YlZ+BC?ky{MX}+Q>%m=i`Qz!Ys*`e}#CN+geJSd6yqy_aqkGSK+ z24`T{cRRRh)3y(kF_aD;e|kiyfXmNxygh2=Wn(3=1GdG(m8CIlye(7kI~Zewry==& z&RMjQI`Q%=%lV#}C#Q}U>T|M^b-Qc&D+owbQW+Z3pqMFl#xT%n)sp%CaazKh<8%IJ zoT|C(yCI>?z!_-Ag}K1GLEGiy+?cjF)jdN*Uq0e>H};%1bY|UlHytOZ(C_XsLz1!Q zyKY>Mc}mr1=I0Y0yV@x1E2^q^kqd%`_ZCMkDyI^UptWUKx|$_`+D{KeVQkanyQL0* zBIYv9-k5eetjOyTLtvn4i2&Qw`tKj_Rga<_qn*eNi`Y@$uk$RN@E8EyLD|^SKZYW z(R9ic=nEEpQ?kcxqYV58f}GAD0&~`y&DY9rBzh(cO`0}U^rv?RKGJs$@QRGAd!1k& zNI5}@P}f2zMHmSo*lgwh`W%3qs6tkcb@8<%E9Eq@cAqu{tdp^mQBsB>f=Ra6eGMc~ zF^vnjix}gb+M}%_2RCZwy00mR>sd6SnHQXhcyUx#m<85BlJN%65UGc{H^aBIE`NB* zUQR8#IzqkcMW;MypqePzqJ>k+xc)-iR)1f1BK-UvQ>HJ3V`+uszYl4p`sX7Peng+CHMFLI5SX&7*Bp4ES1MO|j8z^+V@(>bd~ z*M;LTZuW;^WZ#TYj+j-kkMmRE+9eqGe=gmsa!*i2bP>af>}hyy6OK zJ*=7E6!+^DF>@hPpdd?Lv-e}^^Pl}pBZU4uc1WYuW1oaWKMk8w(eVO%i@&-|D z8?yyze$1D7epI165c%bQpBf^W(E0#=3K3)#?>vzzff8g0d!$tQXBt{UXL7xu=zt>4 zUBfb|br7vm6(#8k_5FSoYu$7U6JV`A} z%Amd2a`eyrZsU$bML%LCTaU9duyl!M>NY`kn)))GDKzcY6K~F2f&%AhV0>j?VPI2k zhdlJbV&jC%_m&&A(cwO{urU#7z^rfur;u44nYqJE;bE{E<=>`WHil> z3>W~>Hkz*M(a*3xt^iGK+?@}T!nm?QhZ>}J>w~wO-z0IkM->lgFc{hl@@_#ZYJzA& zCQp_ydQyrIKugm|vzfR;27U9Tjp#aYB;wVDD`!Z>YQ2|B$+944yY9dz>-Duv>i+5^ z4*|@nUOpV=6en1_VOS6kmE3ik!7z)LB4iVCd^E&7 z?;{LQ>Aw&MZ0}XHZ@eJr*0b-j(#FW-meu+8L50&kOr0UBLh;!(+(O+v3n<|aC zxRJ%b6FFJ@2NADFwQ(!#A`Cc9tUai9{U-+Oc?xS*{$k~Il{3vDkT_ZgVRa5wMb4hItgA2SX?uIR&O2N)Hch5Tce^&QJQ$ZB?aXEkZc*j0+Ql zK71&OF01i|P=723_{_EuRB9Q-XuiR#4QU{m^hTB5mVhI@s&mv{#Wqa`b9Avq2}LLE zJbBgjIWFC`Rj@n|DvP-nb6UvLqF>!SX&o3|673aMa!an43q>K#C249t>nr> zAVQD^sGIxzw9_zBq)4NfaK0d^h70Hnq}y;H^w|wWJPMnO>q)=tr@uZMgHlOuxl}_L z=HUJBs=HF4pHOxxwFhiOLO-FpO8kc(_sSQbwBh{}{*~C2=OUAePzn#ewtZZ3u8?`{UH2oC9SI ztleiRa(D!LJnBg$1A%xQ44P+x4DS8rqEE=#P^$!bSK5Kj@4CXH&2o{2n8Kg)Y>1~; z$t$p)A&40+_AaYp7Jm_qWK(E|tM=$`v(5)(i`TH)e z!M_k{MlC$h&AH`dI{H$paYve6}I~`g&GK=CttUQP27nl zYmBu4V9qIOQ&+vJiYQL5kG@;b3NHkp9w*XOW9ozjaY{IQpd&`GF^rQtGYu&e(e6|>hY4IljN`&jtNlzooo!^0vE%k zuGb8O#CtJbr_@7wG&1Iu^;y`+x(vv@a95R|=MI8I78+0K2Fn4Zeg}jE{uO=#O=%Zj4Yw$DT zodpDVw`e9=56!@s?KRj(R$fd*>%L+s%E)QyKfD1n>Fq-bH3o|E^JSGKsLhvlQ21kV zLa7rC;Ov8UzuA~J+vDWzBo`lG#M0%SUt0VDiAbbPYu z1Ut-yNXb=!zcMUz+OQADzM8yR{UcS=!+-T15u%+#M1eINqR(9GRTKDUQqy%@%#Pi~=2=Y%Y3y`)41A1|sW z-3qL$EGIL&jIlxS@nB_r9u|dG>wpazk`M9 zlGx~Dd&D_S(Sgx*-E|B|*_A{Tv#SoLu01eRX*H_k-2k7Zx^r<}dNwrxuPc+s&Sh<; zBWi)=Y-THaOJT<{Q_5OGS%=s=HRk>;qzItGIL|(Qb`>>bU_{NkJj>q|K%TZr;lvXm z)S%Gju4Tr94aRA&2P{P_b_2PIM{C8jJ672kr+@CRG!~>B#jTO~xWCExo`547j$@t| z!5xpmv&l{@vH#n%u><4Q>3(d-=?Zysf)v5&hLZ$r`nH8f(R9S>)^H3&Jt8PN?S~~a z*=Lq?Fo~tCS&hrb&_3EQjKZ?LQwu9Jpu?K8pB6AK6DSKZfX+2U=nVD-JhrDSav4F{ z{3UUlp;bB51CPY-VDSdJJfgYC&*S1T2N*gwI!z!=S;Tp_dto&&G8Ye(j966YCODpJ z0#UAe+OmW?-r8_id#^;ThiZ_OgmR&`yi;L9jUin-okr9b!ykwmQLAVcs@B1r+t#H~ zq;L?(pbrdMg+MyvLa}}3IO!h45RaQk z@?u?o_u=g495%UKEuCaI>(pg9wmtFT2%Y=H0Y z9fsy5n>?qndE#ijcwO{t$o6qxU}rUzFBIRXQiviotYK}v-Pg8eAHkkmoM*Ki{zT|~ zZdIAU_X0n9BWrZRz3cZ(s&WYE#1u&l<9)wd@3_*&kB+!M7kd9;D*G)tr+rG*+5ll= zn)26pw}0f24d}qaYP=BL<3CPJ6$VFOTC>s8Cb%2+QPF=VZ2Z~48R28Id%;JGXi06* zUa}w8_33^4*$QX09>BcMq8c*LyN%No2lq$>aCi2C<9jd+XW-z zL{&o8fhVJzl9A9k>Q%vJ@A?8DBuzd#&`2xz+HZL?;HFz2UKzJKYC6> z*F)jHaYWT^FdkNFuxA!uH=zD{hU3Js58-pfsY4kA9J=w~IJ7t$Jy*#B$F@;i7W?O2 z`H&oD=GWK*I}(5WP&7yoonES5)3yN#Og-1VlgNwJgc_MiQ}V<~8AJ*!J|*DjtVYIsX~$#zua&8UXH4X%@RjWkjr7rmBS;qU{==N9ab%F`As=G@xOn_|_t#p=LYC77d{>n_00mGX|m99h*@X_y+ zV{hk?!2adhd^RM^gW(PCNS*Kda|b}KAX@=XmElc|v>OI4GC@S+l=%o!Ym$tFqU zc+UgN6d7?nks+)gT=$N@e)~OMRNUHPza;o~iSS=x>O*B=|1p7Y4d6dCR7TukK{z9) zl*4%ozdxfCcyJBGp{DAw2hnRDHCSp>Qv7YNbin_((1H9gcfSUIpn-coN-G_wgcs&p zA?WwkgLQNEL~#T>;8`WO03O#Dp?~Ztsw8;8PZUGQydlvh->vjF1uu~60RZWLFZ#b@ z`v2P{RjSjEl3gTsclajeyFJIv`tE2pzf^ekJ#6~#hyi$>K7mXZAKpwJUeB`w&Nei^Y6 zZDD8_E!Kkv!OW&Us?+t~YIfc)f7*=_%Woa~GDEpgI+16u-1<_1dc>^!Vqp#gSEGV~ zI1EKtvVyD`A^alqbNe6X&EN4A3^heI2h#Q8-f1YQs?tb1-;(-WF(KyiiG~LOcUNC) z;l`NJf+OfT6?YAZb?&T}#vT;e6N?9Z1VPJ*3lT)+Ywfax>Dz3m74MPi`{w-x=6dsY zHRwqV%gOgXjO(IrfBZAQ_E#h=ce)hc;LT(wGsE%pbUXV_k}bAx3-tZ%$I+Da{7v#xkz^0 z_9^I0(J|ALvg`1(q2vM1p;sgYO2hThtmsvP;_uj0af1HWpbN+hbRH@MoWpJ#^Co;L z3b6SJ7>4H%RRmtlc;$VzG0i)sBsmyK!0;4O3g=51>=8_cp|gA^Jk&8MtD#aoY@#=s z7^GRe*ZjgsWXo(Qm=aetDt^Ciy2~8C1Si1;;)e)d5;E{d%)evzV$naB>|f`P(ko(v zCsONBkPHGCv!W|7BT4|5ANefyX88|yV*oQ7OF@zupZc&h&3k(+#2nz8=J1#ER}7^u z;e2c;k8i$*t~U+#&v=ZGoXESVSS#V0ZHq3*0-sZWH&25&Wek8s4&D7l*RC?OydG1u zOAY^13t-Ix@#?sK$(6*BIoZry$gL|EQsCO0o*Q^v_q3z-oHqS^C7Sc^{A}Vfx{Rv5 zuOx~bd|zHamES~uFDqP%C7iD4UjK)QcJuFh%)zo;)#R@~lw|jIt^fMYY2sPOn&wd+ zIR?miV&R%H0XZ@I8`ldaf6%oq74GGYy|pHdTKaL=|89Bk$yxL5p9*8umV`mt@5@O2 zyl;AWE)MKGbF1>0Bac+{J`!e$|yFJ%t46|SZD?K3}BFdaaK&XaN-zfwz*#pHIA z#syQ``DSXSZaKMYfQT>@&yHLZ2nPhR3ztx_MaA=uFO`Tq!_OUDJW`{3P_)OI%d}-{Tm-sH#OhL;FX<>MvouX9k!c6(PmF^PjF9i zk91FH&w%f6O5gJS=1Ls@wUagM&#EE$N{SEtAj?cZI@!m~Qtz(0eyGQaSDa@w3*8dU>5{8ky2j zX@&>QzG*6t8Sk84`o!x}ujBBNNKE zpdzboZ{b2iN0Ca3dWSI4-M%Ag!VA<|T=+7188E&QQI?)0#A$Je{b-rIdq^`u+crzTQ7dF^(MYsrSojVq=# zxj(O)OPo6#dhBt{hrH(KeMo(^%DpBJRi^5D+k2R*!A$#w0-J#ch3&^by#E}~ytt8) zQZDX&BuN&uL4QaWsTr8%x1aK=e#YG{<^y(mrw2o{t5{pD$S_>1wmlv6O1V6#5=))5 zUstz$&(Bl9d%NrNx*#)W=Q|`!SeVP7|HO~Fvav2B^=CZumvKU@u0I0;Xh9YR03^s7 z)>S|u*gWDKjuNR81Ou2L2!T02JGBR^!P9d-Ckrp9n%o2HfthE|IM&U&@%x8tlF#OV z-Z2gSYUuS)4}w=rKya$47(tRMJRAjb-Aa5U&@n@#=0`sOsZ|9kcf^pp!tI^hBXnb_jj74^D2iIUVbniu$aFmF!gjcQ z@__>sZ^)pkaMQbOs|^&0$9-F>Z2hkLF7_ANx#{242$*t|uV$n|?7b(OTD`0P> z{unHeSg_Zaui5)TT^})#LP~#FRj3-6TFa&9h9ikJt=W1(Sg#2O6n|4BQ4`~!B)gE$ z>X)psr#g!297&Az)02-6W;_%aKXdE(1uxcKBXz=6J+b6F%v}kJs#yQ-SIb`g!C8VN?!MsLuINHtdqzmJHx26OD-pE^0XE;o zG!qB6SEiR=Ja`>g%dz_H3N-_xHj@HNNju%d^eqNv?q7Pzi5p(qOG7EA`@F3#N$o$p zu_FJu%(-os=6F~$I)x*k@}Th9*zSYZpF0j9sX}zosW~^*2-fJ8g|9Lo()M>9`mbN1 zC=zSLFs|$a8K!iaho{kg(Kzzk(II4JO9O>H?pIQ_(PBQPW}G4?a`t9vD7smZNC87Ki3Cdf~l6fj#B-Mz5c6L(zz^6~$z`oY23YxoKk*5#vLPRTkg>7hg1dbOHa8_PDs z@D#(GPF^?@ACgSwS8+7Jvoh@RBSHCnS?;)X@eLpT;q{;4%X*Y!Gd&z_1EC>XkGtH@ zaZz|3{)#$N_egRimlf3*_r!0+^n=h>Y?~bv! zpw@4<>$A~Yr|>sN*vqs6StfHHH!(bq@hqs)sh;oC6KFXb@^ftnGi|uLIWJ;&bBRNK z@VL`EDb1)$FX#^s$j;!|_HO>_lHRYMi8^I(yhJthGCBNdq3%_Vi5u^I(c6}kCrDyK zizZ)w9~-^rCFd%mu+!U@TIAU9zH^}vG(*_EX17IIB4?_yHIP;RteC;f7GSj`iFLuE z=M*|tdpbPoQZELGS&-+OLFJZ*G1+_d%YFK)KeAbR_{bSTem#d;I8aL5hq#46CHv?ik0^I*SE&ZEK6Q4`HJqajf6S|rUXAo_L2^bUBgJ- zX;v6BtKA)-W~1;qCvaafuhuU=Z_Mndk5_b+T)ES4SWfg(^3LGZ^o}A9yv`$y-aSWr z+X@A(bYdSmZK-s#?IumtCNJE{^%t1V%Ddx>f@8GxD7|G?F)~8Oft-%(<`z#57tQkh zI3jtsiWi=`T9tEHTsFcz!SG#3XDd~2NZ$N47>vI)z^x;?9-FJJ* zNk>(IkRzw-aOG4}$cMxDJ9ZXzzs>Gl+Kmp+L{om6eSKG$1VffCCo&c1Xv%gn(<))| zAjM}PsZ&;+UCrDCd|$c!)efDIzW6+x7^Pkc`4a)k=#S?hP3EkbeHE72cbVeIzZ3QU zSX$WB3wW7O7W$12%QK)#jl$4YPDILD$fQFZmJhJH2g;Ap1NL1^L9ti_@X`1#~u*^r84cOZtH&@Yc^w}XI5A}~}iHz;uxIs-ACf|&KxH4`V5@YyH6 zpV@PIuo1zI7aQX3=GY!cr)aXI5J0`EFc$$tiYlMu{Q?y5Yp?i;9D%G5fydCTgQ#42 zC-02|Q{ohc+LBpr9LGN16o#&h^)^LPetdQ(PqCs77TdpwW}f3gY3f_~NQSO{tNC&6 z)0A4dHp!Mw@>3%Il;Dd#??aZjEG{KzzsIo7)J*zhq#xa%Hy`W1Og1W{-feH{(b}-w zc|PBcb9aAXiJ9~aB{8>P2HPI9C5kv9xh!*}bU~41bUXh+-CcFpv_XwLhIJivItcQx(S2MF~Ul7(H@gBJEqdjSp4sJWt3FfZ_6` z*{Nor9?V6*U;fp>{36s~9n*bSJF;vO-d-Z_gcEn9PLUHgiN>fYf7LkE-Bp}lO_9f} zC@7%KCd5jGpoo#2bEDfAh5dFkmEx5uSWGXw8x~rqctVk<9yIJMGF}gN6eny{60EAE zvI6c*#DaXU9q8T4AT)i~HQ*pP_ErW1NDp3)p!h(PgUd!^@GMiH);vnMk9czqTL!PC z4DfS=-yo^#AT0~lhO~P}`y(O;Q<7|JPk9N?W9^VO{$ry31 zeog3Lh|lq8Bc!hz<<#>lO86p>B=_ZPh)~V+^zyXqU9rb*T*?=F))4cdGl32zZEC*hMx*6Zs-Qq ztNrp6QQA6e3K6uuimr40LcKAE=#<0rF?q?!8(zEdQIs~DFt5)KxO7X8QH8v5zr&dL z?*Y9a0f``r^{d?W&j8Wf&OQ*}>jaEI|Ect8ISAy(9^#{j0JM_ZRjdyULhyEX`)X_A zqyj%KHz^*9e&junI~#%p)zdrt00|Up5cXYpoERCtvI+U2vhQ{9(^5ukl12Y{>Gse@ z>2MH56s{&+DpvDzUl2>JE;EzYMXLUGeU;(>CQDuvCrh(D5Tyl4zm z*N8f%QNo@a_*z%rcMKeEb+?P5*~!svlq?c?s8LEZq+yOJUsZ2Rv=2qkq&PZOEH1J` zu^5dRyMM2(Dz};Idr;85+|&G5^M^FnrGLGsJ;lu7e91_m-14#Gr%=KW;S>dd8kOh8 zONaCRB75Jr# zeRVJ4-TGZ{j4(%)zvImf>(uN9XqZY;Prcb?O89I`~e%dau2Z5+DERQ!imABg(>SuRUM87fM|({5z3h zp;kow>E`$IA=aNeU7fPED&__s*XPOJQ$H@bG1WN6?B{Ft+Bf;8oh2;h$dabt?}LvH z6jg)JPkD4>cQi*xkCw>J)X}$&JkAG~zU?J4HKTZMJoe$tlP!EN6KD=-g(SRpz4=X3^&@aPZMb%FJie{mKvqS$*cukPe(~ ze@U+Z`jyt*Qkf}xJpTIRHaMx+mto;J3qnR$-3TG}CW;uG&l18Agh_pz(?%YM)ogws zyI6oW3AtMic?x1cOcz1hjIf&Q3vjBRz3^&^2j#y^)^~%-YpIL3o1>^R075#o*KMR3 z3`4co5*#hqjtkzmcH8!oR5+)wZ!_Vp!px^^u{%N?rIUVSR~UD+yYgD(!Kb1E4vL`7 zxf)}d#0>4de9U^~QBFeLr~l-I?Na=lRWiUgL=&!`9(}(am>3`7mc6&xbUS#A@E4=D zw6l`UO8F7%vf<^%G*b_UGrk)y*Tm*Ju%Yfp-&~Z()q->`_)$7MxOKZ?B}M3xeqrvZ zD6JIcX#u0;^|$sFld)-Oer&h(UUSY(`bJ|IS|YzvDK0Y;i(iI!Y;zrd@u}c!$n#Ge zvY3Al(N6nAYNlBNl20DjK|7`blo^nN#_|ACw&9OH1`?kcUx0cthF}+ZD=;FS%5tW# z4=;$62t6zOJ_G3cz>g2#p~E;xD9Q9G?2|mlLq#QMB-15T8PaP2CnNCMdI1^yfC@=W|*pWccl#)_aWNV?2`xbjkgfo{e1_vp5?l+~_)St+P?4rdm2Qsr+ zG6LZ8nSG+Y2PCprqU^U3Ufj?oqzLG@naqvV-dPT*mKj$%Tg8U;Q$N`H%@|BN^h9t5 zls&`r9^*8`EgEp0Ip5+JCbdp{I-K?WZV;9?N&}-4k#@Dtt>p>>U6EhZ@>YuC1y{}V zNxQd~?%V2ZUt~k&>U2li3y+h#LF(~J#risX-5fiLNY=-p$>{Atm%Wa-5ySjQCVG4G zNKWYVVENEhH@_$QQ9tuThrhl49*>{=It-orgzDBcQxUNwIXfkb>|VRy5#`r{-uk(E zR7|A^1Jl3k&Cb~94SS7Awv5*cOV5lJW@>o-r?Fu2rQ5yMXo|;m*AlJOc>lue{4?`Y z5QH!W1Jl4La#wE--c19&g*3mT!gTv5^ zOBw9wD)hYN1M6CjBI+R-ypgdGW+r&#{C=O!Vkol+)kLub9>Y$u-D2A$<6tY>0s~%x z&I1IC22EG{_22`^xJA19|H5-{Gs7{zda)4a1_ZOgw|7G@`a9mQ`^>cTls`K{J=vnwT6lyw(`6TdUWb(&jeRthp$Xra37>6|jn{dU$QgVC0KO3ErH8f4^(z;{Oll?;ndxsGl7l z;a%y4slOP*Q*b^;;fB@1h^GTmvMGwf5{WcL9Djav1XSbew+(6;$8M!UoFk9um5Yjz zG4Idm_>r7CCqVQ{EeZvlQN^B$?g+`E7m;-B6nL zHtRK!s|2hhK8ZljNR)QDeKWFq>Sow=C(t)*a=Oj88A?EcWie*3@MGyF3p!W=Um+}K zBigI~!na4qLM}Bkx9asr$^r`+q9|$=md$GHPtJZ2K=fq=2^-oRZt)8tikO6H$k|PM~MNaxCVC zfFVabBs5(LdMyq(I1ZJREU2nQxcsP7h(ur!g=+B7j52bS3zsruWXDNAP}rry@g zZz+b?=^9c0D!H>`7zypbe3GzY#=FtI2@3km8)e$*n~QzLE++R@ini)nBo>}-N~*oT z|6rrk{=<|XQ%`6`1M`V<>#v{~S%2JTlc@FTJ1zaRT$1&W4jN%js}hM6Expqgw4Xax z*At4Q$IxD-B@bP*0tFv+{XBTjonnv57c`}~%4v7OVP9$|r8&L>$=bZOHr_ehU7jEJ zs1Ls7`?FelCj|lgY=;Ag&04_wswr&JH+K~nBmUh7|A7EPGX=f(SDO44)5BOQ$OXAS z;Gz=iUGk1}JtHoC+{ho)$JZmnySOPc_rPShBa-itXMm@Y5&LKKU^)~;tOqsrt_@l8 zp}NjNw=164)3!PvR)&n4RyygKly=b z6%k5jrEm-C(GGt+<-8X=RFlsct%J8{xmXMYkp}}ozhZqJ`G}qM@9wy-_@nom&(o>x z){$Pr`8yN735H-Ew`fe2|IO*nU*4RB+(|WivOV zlD)eHlucm~gmr4YKq5um%sM+CjBBe*RX} ziVlrw^C^~U08{#x(O;(ZpB92)v4I9y6jXlbtrxQ+V=C~9e^&?5rDJbJq4{kubp2I z`fFqTgJSfLqFU-KffVy?*i5k5$$`ug(g}Tn^sw;XfTxVCwk7q2)6^Ui##(P1N|7yT zaNHjVTB3_3-?Ud)-jD=OkaI+{Lhlkg$T0hy`~~9F(SK4R|HF~wym8~t z{jM~C0Eu7Z6tLe1zDTTf>Q(N4-?+W-qAgxti%IZw7-SO%+FzCc+xh*Y-k~u3$uDv- z4gSOce`*}F<8K7ZW#Bzs_V0FHR|Y|v5yE0Ie*7S`vY((3I?vi58`43@b(F@ z%%^kDCM1F>3+4Ve{qL484B>!gSJ*?ogvSytYb7UrWkdqNurF>RKSbUmz-`1De(E%G z3I*#I=ZRK@ZC;H#V`oElj|Cgin5dr3W>$pT_ zZ&Z#_W0tRO_)z$_(8-_TF#lx$sp4V2%y*1{v!RQ?9r>*D-sEQeku^eo{6A60o<|3z zp;GI1vpt1qnhSO|p${zohog*=M*ucd-D;^j9DmNRz^=5LTrt);3$++kTi2-)-bX*1$M%!M{JIe>#E=<8z>gAg%>jqqI8OaUNQbFy^X={i8cJ8azA1gV8nb zL9SaMh?fFNrQ3iv<8vOp$}rgbZr3;S%=OYcZV)sX%?{kn7rC|kQG+@1;BVQE|8^uR zy@bI~sITAgY9Er^T5yW<{xx1aus*O!B+{|(^lMBavvyheRN9?K3Are_jC!8UJC6#4x3>+1H&#$}*1l7NDCQ< z)Wv4@D1jrC^@gq!RYx4|E$+fo8~FK2NpdS3{nP-CP3k;=;wmM$#+ZGQefzO#YR z&}nT@;j1_Zj30Gp}zXCacv{hBDsPGTEC zNahgh-SbnGzTgo;k*Ku!FV2MZ7=LSs6o&C=!|W)|B;1Z(TY4(C^X;|#U+yMOHt%sJ zfY3*%0Bl)p+Sf$=LCYlQ!IBS$>wFLE&X`Mfy2IIyQuM!PDf)pTI$JE5#?Y9yvCtQS zWRljGMxi{^y-Wm6zYvl3Sh>%UjBlmZ2V5ohtRc(HgfwOBUf;Pm31{j=TbrmfxpG6kA@he%(dg<_2l@o=jBw}Tv7y>IK=Lu2=S<*#i= z&D7IjXZh-sVzsgL?&Y|%&bM>l4-&z~VWsN;1$>uWLLuA(hJMF~NiV-897OpD zAA~dHBK@)bL-uRtW-zD;mR-PnJzk1=>IP-Z(K|cH4llji7YqvcyudbM?G)C?lfn#5 zKFu^M(P|&FXKXmH8qb{|u;C8v;e}FuNcp@nRgUVuhRSHR`YL6ZTzK#8;iA`_2P3ft zRttT8iTk>S&kN>bhgrKS%jSJ_@Km^$dyQM`i@#ZO?O6|r%+InvWoB>-SrqglwAcL~ zMqHXes-w!`M@X7Z%8f5OW4+QTy-QY*L(NNZs(HTF3Bc;GnaWW}je7p}0&SktxyF9I zlHCkW^>QMLF5vtEKGMPJ3q zk1gKXFV~;B?3#pV=6|<(jP}`G5AB*u~z-MnpsexYk2ED&3=RSZC)d4lHGQ+eEn)Em%wE ziHck^k;Kl_8(0kxyxqE=2h{72n~67ET7LMle%cV-R4dCI{z+rEXZKC6DB||g*4$>( zX5xYA#h2A;LyIAEr2?Cro96T8qc;yq3Ti1TZ9vLkW$jg@44-f8Z?!q+i2HzyJ1x=o z1p%vj>k3#f!qV|w4q$G;4@bl^96!d!12Fp!Q|>Fx#=U%^sqp|15JJOV3%O%JaVCY< zi#aP(iFpgJ;P44LMtB-gt-0wp&axYgMh%d(b!TeUBYAu>9xQG1@h{L1m1+dO>-n(m zP|ckA7BlCyySw%N0oKlY&Np>zI-zOeXZ$<8pL&_0PG^#^^cZ%GLa%yCw@gkJXfz?k z+h!bkUt}zVuvd`~OEsyC>P8gL=m=NW<7!-%RbLKlP)0g|U5{E=BU6l@g_b10&ib)X z9LC@awp=8HE@f>8G31KxniRtW0-8R*tG(SexcoJC&V1{KOmIEfsF&}2SM_5o%Mt;T z=W^ksTHA9G@BU7XTIZ$ezI#FcgC%a3^bdWStj+PV)O_8E{fuGev{u1}JwL#QCBIM} z1gxzj75joDz1U2ZbktYrO$v5ZsJd_kBJ5gv=Q-w?1VU0es(ha*4HE3}D7jUv+);bc z9O({bWB`;0J^9aNB#a(zmYai=)5`Nfv%}Q{o)cYBAePL28me$YO* zS!Y2|%UfiGDAV(M^@L=7ba=7;^pK;(v0Ckei{$`J*GK zSbUeVxoL)w5q{oGX6C>@c^dbKl#mlE(f@T{=@X7?myA#vt6&>xfVwIrVo^IKZO=mC zjE{n=NVe5eml zJ|6>l#fX{gZ?j6x+?WLzTYsP4>cN0#LA9sgY^vyOM#l_C_QISXJKfC0VjVidZOfht9t!=Y?vsr>Wj}-{a2Sp#qXvH`* z6y_X>AAXua${2fGtzQ9{cVp(Z&nD@}s~c>m3UiCeK#5s)WU{^H(}rwW6M$JicMOyd zK-##blW>!J(|lwiYQe-?r{Dt{A5d}>S{*Md2Dzz4GCXrH{lB51y5r|yE`#) zQOZYWp%&LIqoMxurN`C4%C&PGdq)q_(0is&mjYjD4loY=J4q;7DS#;Ug;c|R5bSc% zmesn9c_SD|OENPMS`?M>F`{6YL(`Sbp-lc)$+z*nB=k%bO*(4H>Bb9}UrB_u0Ku#u zu5@{ItD#i9{c_eg`ONo9!}zlMw-`x$l(e)qvVj+f?JMoM#?AwA6-MPz9=v^a|3 zo=s8~tU(s6e~SWtfQf>P*JR1^g$ZE8A{KnsBkp>xpSmbwrsBk7#*v$q25}gj#=C}A zY7K@u-2T$h;gVhsR4@hwaEQLAG`(?`z8zgEBBV4hi=~=Yup2?AFAUlo<+!lRu zu7R_zU^O7HAam$33gdMFHCZ8hoHgu87@A@BW>6NPk1f3x;xdrP_X%&-g91hM+}{VYj!uCN4C*UJCbBhfkCs zkUy`2jh$tgcBa4&0n!oeWSm9+WbJN8H1R!sUlK{rX;lhzXq77N4Rqj9cwA3*S%3$Z zzMFpBiQUoNoKfG6RgGmOLs@xKY|f>D)j?r8coL{j3hdvOrDqN*d7tgtX64mMgn^v9 ze2d1wsumwA=1I66@$mACb9wUnpfedh!TCe~Ib|;3wj~8!e#I;hCz!e$MmVwE*@wQW zD9{@Q(5;O0mEFWJw29xi7wsO_sN#YOhhPJ9cc9ZZ8JK(JO>=37Xtj0Cg`3Pb4I9`3 zB^~Or>~t8?nPE}iGl}=h4!LVBfIU&p?G z^Z6T|#sGOA05kETGL^hzmE?(*EzRe9a#m7$dNsDTrGfzxNMw_^p^-|1(CGL%1*}vxrfu>H$Bk6>5`HqM<-aQ?Flf)?{5gyf1 z*XT~%zTwdD0iXgCJNF3a+smK648Wm@WQLC=siM;LIq=%|T#AVZ)2z`{AJJq+3 zvuM!znpDp1toNLg1u(f?)L$ND9}Y|*oh&A3V#1j*xT&yEYGT+pOKWdCrhHY%QDtVf^z zd?WhCH?yPNKG2~cXXex;!`pwzlEk%osn+)(y{#IWx6w3)h?_B(WO$q__(LcB2T2Zj z0HYQo!y-WFR`7AmWVS@#N;Gq>2f7AckDX@FR_yS-)W~Y*p#0?a(J_lk1BSX(ZBA}q zZ%4^v=Oh*RW`+GqTA3{YYF%;nm?&>~{(z6|tP4RnxZR>HS4d40ruuS^M3|(0*9^rw zK8?t!cjM4y#-o??W$5KnbhyLs;8&`*BLDB%W)0SlZO(#E*6JAtmj-8rm|ecch#FyE z@nf%YkkUy0a$fs|U^D5iIB7#?a_CM>QaP?|55|52vE-h)0@v^~_*F%eo9BRn$pu(J zECl-Rd-JeczuDk1B|pfu#L`Vw#fi^7jiND{h?BrlvI zI!lBBD5FVAv$jWkncit9+yePiF0C-1_TR>XgwwZHC%@>OglWk!m|?FYlgxG@%`ID` zots%SZgz+T{N92-h^%^<1SpG*%Seth@UBEZY@Us|5jB)7h0&-PzH0?Yy2=CTH_u^C z@2v9dT?>NPdwl+Fr5e04lv?AQq_E>5qzi1z88MM}ECER| zEa5K|YwX;}`djecNai6L~eyTexH>)6}MRA%3`vG_T?8KY>U8Jy9y|g2z8<95&r6^bCy<11ry+QwYAVe?XCcv6p)ESVUG{!xx)#Hb4MifKi{>$ z5+yYO2|;CexwUdde4IR;Ob-VEu6*8^Vdqvs(RpG+#WHRbtKcoQef6O{fC&$0Y>dks z*Sk`&`Ozg$co@)YqI?=8c_?3Ov83_5>P+RtmrsppM3u2 zf!+(6Sb1!^e$2rm8}#C1WEQt7Y>yDtWQsD+HiZWF&sx83eY;tUZQTUfpt@lMzuVCF z9jSWO-7W>!%&cnCQN^JGf}sDy-kXO*`S<_dB{9MnyBNmUCHppsvCNQtX_2DrB0D9@ zZZOJD2-#Ap>`E$G$DUpGV(da8ge>>_{QSP(@AbKUzpLwy`?&A>xc|8RadaGV&Yb7@ zUS99l>+yO%-!d^iGs@;+kb*Ivqf8nn;#nhlzw72WQpWp2N?#o5$$Kx5q$DF&ClM86 zw2Md{LqbUWoo(x+l#L_LDv3C-*TX&#W4hy5?YIN!TwlpuMBW8|n1>|YIUeD&b?4}L zmd(#8FAKqzLmiN8gx$Gi-Z(Y~GN-i)`uDbWdfs$=k7~ktWOVF={2$5jf0T|~GV1!f zJ<0-IF?R(R=f_;{)hl6jir0ka{ZwDrMy&)T8-d05Oa8nPX#TW$o%J4%x?2fWr$U~5 z-D%~+iTy7Vz}X<{tPCGq9$l~YGpPuYV}saPGNj6C!P0Y4L)@ z*`^pDDX>JAJMC1Tfhtp_BNE9N{Hc5h#}7OcwD!O<`V419@7~69)fj4?`?!&d{t_X( zjFU%vK?LRDQ=;4%HSGUo>_1D9E-hNRM z5}mH>${6d}wfNUHALvD?c?&=Xu!hk$D8lqP)E7rj;;pN*0&w*E`0!(%WRRGQp5IzZ zA6tpSfkQGJ;_;M&3^%fYHi1jVXZefB-QKuBmI?-5`nA*)s7(R19iP>*a=J;%J;&oG z;Go6Zc{N=J?fM)W2bMcXRPM!W6?Ui7J+Pvg{`0s?0JL9vio!ofddx~dONf~fOQGCj z4t~ClCWw44@%CIf-B}D^>a{N+nC(72$)*)%nis{1lAgr7@eixucg8(iTm?lwe~x^Q zoxXeBZJ_*p$}d@(nFpXMQKQZFB1 z(Q5MdahXZkAUmP|yea0r-PB~Y%1}4dvmtmK9|@(yz7D?!6T*98KoMAh`f^V~f}@J7 z-hmkzo;&>Z?3;>U-U7$UMqtl}174rZVaQSupQv3Hp-oEbTcQU=rmgUvy2OvXZvU+X@ckKR z2EjTtRcSR>YJQWhq_3ntA4AWrBzM6ZB>u3vr=GKA+ikoh{^5D+C}+FP5lNY2?S5csJ4Q;?gj9Fr26mi8ET?)vs}L9Qh=#;x zU})0Rh34>>Y+x6o#xACES{A@4%#sK$XCXP=(WiUStycw%_bG?n8CNkqf*K6ei%u8O zTHSF}@M^|z#J#?N5|GPZYdQAA`-tJFw8kmE4K$yLq^b}mtxFt<6bFsz_tlAddl+q6 zYHsads2uUJ39V7?<)JmE9Wf9iK&nT^ZG@octBp`QYigiGW5B|+Q-gkU#Z9~QwNZ>8 z;pvpIZR@+(KdyWsdx*c{%EiCp^m=sh9%$B~hc+NcgHG#|6}rpa5{Q?s?I|Xn=sSA6 zY!*1;MKKxyJ^rvye)qaQdVdcj5gAW<5_dr+!ZHFF9EE##tGw0PFDsuxeN$US_rV#7 zj;ZfOVAQD=UTr>2xtA>i&7i1+Ff zIcEpA^2_^>>D4Y;7P}l&41^(u-$FGSs2&zblBddJ@1@$GtKI{ReN%5@<;2u|xZibO zz!EtvQuUw0&sRaZ#?p^DhjgkGH1_lJHP(46D26UnVXa>nQrLa53R3%IYp&Itn?EL_ zSXZ&);C>^&YFbHQD6^`$v!-3XQVvG-TkXAg*)CtWO0bV&>lhl59M6Ar+ z*7)Z%`pd6)PYh8foIlIkgA^irhj+F0pj9338t(HV&S&JUbj8Szk&+h=0v+P(+_e<4veM8eOzlUI=yb?u!`gnF z?MQ9;`8DV9E>f6RQHpMEOtC0Ty{uwp5Wc5ems4HrA96?lMYF$#c^|6IIi;|1FJ zuNAcOGYPJk?rasUt~GDhxN}|I{6=Ni{a~5^gMMXCc=j)l9P6xm7v3r^)#jExR7g!* zY|DFqsDD~q<}lPz^|mR}@5ztV$-Bo+vMjLwY<+V)>$%KjpU2n|IE96?&DRm^yND*# zP{E_1%AhU!Vo9LEOpAZKp)>@nm8Z6vDnq4G?>o7?9f(nG+0qn3%wUUC(I?7k%RiQ7 zdwhA|n(2Ji|J)4QRuJ|^kijp(lw8!Zk-s6gf9!U1;P7z6aKE%%C44AJ%@#_XMqH&C zBGW#Qe5b))qrWrV;bl&Z3I86psR#6MMP_QweM$CT>E9_X$^H3-#gkZ5a(zEgS#5dH zH7-J7W&IB+a)^(NN0`;@J)Ys)fk$Qbz3ZLNV$_RwY=4tKzp`jqQ=Gv%wWmb)^K-3h zr)KV`2xXjWO#QEp3^m-_aL}5k`HrZq1~g|jH+e{PP&F4wUP#iNl*!lH$n#Hdbj)75 zc^PnrN`a=@U<8Nfn+LytAP8s8Su%xKINlPz-&yj ziQWjn3-Eos@{YYJ*DE{s+X~2Shj$kJ9|)bs(Cjqvw?D3Ax|u9ps{xQTz- zBzmI3Tace_yR!gpjvkB+d5`TpBKWKOu(K!wQTS|F-fb`4vc}Dkl7)rgIM)Hy(-7=;3m?4vrTS;kA);{bQ@Z1Al^}7 zO{nrYW&j^tECCoXh_rqANSFG5Ne}+d?3_HTxWl97!*b`q{RJHxuNwX+MF^qw41ZoL zua{Qj(Xe{TjQ6kB-*rh8`wzUU+Wr0Mp)^%knSmkS4Sd%belMV}`~^0y2-0we4bkP0HE0p8mh)}G#1m41XMq|tXedJ-Xwi?+u zs&vdGxgpobSdIZ)h#9&N!Spr!j~B8M1{W&*bz}+9r~=@-G0_~R7=Y`Hki1i#dx!|D zNrF#MiU9W&>!d68zrBTje5?OFp#NVyAXp@jR!Wg&hhCb1aS#PmM6LKFqsIXn8TZ9( z>HjpVkJ8Ycr+`I5vN!5i@4XTSyUgT0ipAWW9}{a2DcjLG9tFrQSFt7{&K2jR1%_@X zO@3QaLvFfa{@fq3A{SVRJVVc12~Kq2hh!v95tsOf{}FIb6!%PY#bOd2j||R)jGoIfUGCo<;;%5Z*axV1duxa0K&2?FRVGz{wRy z@jpGRka{pddM4e1oWY#&Hv<3ub=v=u1h|da^{#8_4Y}j6PB1eT5MVkf<)e!t{`?x092F<@}GU-#`3_0HzJ$z`fwLm($`rpT{on z0JVAN{Ym=V;_TZBwQ$@@zSH$0XqKKRI+6LxqktkNhlXjvm_q+04=`a}-5j!vlpi$X zkLHlh>yy8Pxwtsj`>(ah{tBi8z&2c9ly+5#rnd!n{~@ji?QeRJ7|-F?&gq@>UC$9- z-JXt%ggS*k0r1co7*rI>#R2LNqYs>ycp)cujWqj|E2muD-J3;`-(q50?hAk`YQH}| zQ{+)_q`*Nm1kPV)=Qh)tU=8GS++R4L{8!bhfUQoRha+fLrhgz_X{I-n8c^PlTOMVe z^-nY4Z>y3Q>w^JbM%{1ijKwEpi|iP`pD0b zZ^XUfUx{9=hoEEg=3T5G&^{9`({FE%a1dQFY6~ocQ5oC*y5&}}1OUI=!gXf$)vJQ{ zJ)3460harNGbmc8lGE0UP#zS{YD&E1Q0*ZxB&%>zG1_yTe7)|r)3UVTN$2PlG%kX) zbSCasYuEN5pWHpt9=N^ z6&h4*#i&NT@fhsA(jio4+9^Hw>dF&`P9%zLX&&+vbe^UWa-K&{Ba4O84X-L1&F9x9 zx9uwV2_JGCR20_6ltToQN1I?Op0P3iV{7)MUokBe^Urq6eT@8) z^}hUcyQHO3z_8h%wchk2)nNDxaI{e)r2^SJY&56*DVb3Btj$B0lQj}qNA{yDpQ$+6 z?*0buEF;sV_8a!i;#l76-Ufq~;Z4=ujo*N!q!ov(gT5J1Lv^Ld1 zYdxh@Y*&@`j$QZC59jvVz-umRXcoi+A`BmoR;4gFxjFjv1II8C2oG`AI z&P*-^MRT|9f`WI8j0&;-@9Je1t%bGczKdl~3 zOpP1T%ehGjOu_dt&(a1wP*zM095&@)=g%5U^_flYvoIw~vI5&$A76lX#2zK740)@@h$O7>+j>-T}pd$Xm5meBmFX zefqXxrRqG_iR4;19mB{ z;rL)75P_X41zExf$UGY8E%M(FGdnh6^FX{orsFiTSm)Jkh%Ol-t!1NSCPTKsqN{ou z%*Zcwyy@iJ>pqlfzG~MCuXO{9cwkdWV-1XxWB76at1F9WngyO#_icE;3WF?wzxDIS zKHu7Z0%x8WA5R{?vV+<>3R;qgW@d)LaI*yEHWfmr)GhY0-sv*@#^T4dW-h=k$EK+l zBy>JmlV4E}SQQnJra3r5Vp+Zw{3DJK2SH)TtG?E>rgTF5%PrN4B|SMY>CoLUDZ&O19ki(=7di|bn+V2D_?+WK<@hP1#(n^$_X zf!^=LL)3n>S2-W5x%s@FIO}g@KxR!d?x$!K<<`^JfS7BM*5?*UJ-h(frR6cukeMn4 z5_q?y3>P|*I|BGOZ|_Rpu6K_J63-|-u6mV;#Ycrft7bAfz0MLooDh2N+`E){OW}4_xj1(HYZUxADz|}La3RcztNdmbkUcOia z*?eaDmQoA($sBDAZ0JSbm(t0(K*ReUqA1aWMM{iB-3d zLZdjNq(Lrti6klDFG_x($wVs?v5m$H{FnePrE5H;BMuo&zmE)A-u`^)T9S0Lq~A}$ zsC!2aFTic3qJn+n?j5&HZ=+`xYM)+&G0l21sDqX&BlC3=3`@f9zZNlr7Ckjr8ZcG~ z!Bl93^S8pM{B%~_8JinLm7}MMZ7baN0eB+1Td*pRM(8?!g@ACgyNge42lfH4D|Z5A zMtklEY0#1wiqPEKn^%qV6P_&WtO!4U^|wO|k2K?f>|h-O*oS;oYW@;?D6XI8(qs5h ze!WYPrD5;io4*i~c5HbAnuLLU?%Ro`-K7dRqRKd>M0uBzU^OncTex7v{EYUSb~N*zPG*=? zjPkk^nzufXN$P&&snejvcg+OOP(K}+4p3I*X34yJ)~J9)=f&E+RUR5k zdAceifnF|#<_iZ*{o!icU6^cw+PAsI8n5pslOJpo{S&k4RFONg2FZ~hg=muhI~CAk z5W{8smEb{aqfq?)#b>N&Nvqjz3bH*-I_fqGLIcmsCi>5+dYNY`1k!%6XAXu>K zP=W~cY>)z)b1IUCBS}@rLexcMUi#!W9SngtYAt$KNt4}1gG8CI-e(tI)|OTc@X;ra zVe#ARNm(0el-k(nSpk>!(cyOIa9mN(y2YQfte*vX;A8}&-m3K4k+WTad9nH84^~~# za#pS?G?Ba^!Pb%7KEwnAvoS-b_GD4%QN$9t(7xhXObm#>{Ct5>_w-#1R(h~N2gXf| z&>*n1TdQP>oFc{{1d;x$_16NcHYQb^f#O|)LGl_%-O6K$9iBX#4&2m{o|;xiJeJ=S!Wr~;p` z-W$Yi$W8a!kKcKtl&h?3JxaDzAzaf`6O0EFH?sVMw8-_sUqpbynJ0Z9dhf%=ojk)b zAmu=fa_8jQFxeHi4cn`TQs!Vtjx^%1MusByOemjQS(M=nnWho-3km0Vq7;}e@@3p* zh6|eXTy-w`{E&T%PfIrs#b;M$PW|g>b0?&*yVSIgj!Gu#;twMk8I#VFqXQ1@8HCno27l;YJdbMr-8P8F&H4RNq~3zavujJXRJx z`OHwa0j;6*9rQU}OOlNR%^Xf^IEuA;P_g24FRkvT?tmnngq2_^2xL4$D0fiHitw?` zw0+J$)?Qe5jW0+iCk)1$Wt&JM#dwZza7vqhu7O2jvT2xdPgXcNG@$We#F*{GWG2f% z*pRNHX-%sX+D4K6q?YHpdvu zX96GSi@}noU4Mkf6#i0VhOgBr5AhD|}hLIwS8lnd?wdG~W6%@A!iG!3zzrC=|5 zcHv2F%t|tXl`-JOC9?5lEqX~r1TT-xgSR;Nnf#@KhFl4jH+R*89L6W_JY}%|tz^qI z!N8ZUMK-R`owA(rr&JzusW6DfHu-&|iCpMcc8SH%*LpB$F7e!I*byHGn3i%b4 zHk?@75I|}m>pHPth-Zj=84M?cbcpxM7r`DLr+AsfI3BHo=bD<+|Ej0YK$~iSH&Snk zITG4K6r#DscT`BUpoWGaD)f;KOH!r-MILzF9C1X7eu2}{O9mJ`3wkTqaH{SW{Vxhq z#4yP&N*FUNoZ?aH@27VAF`ochM#GqtANO1ZW}Yq#GEcZ}=YQRD3&mU)!_=;m5zY&R z7b*^-If&F(@9FAb@N$8aDx!IYN+=YE28Yj)y10jVF&>%Jqa|Rjis;(JsAz7JIRa() z3OrQuC@IelhhdIMA7yAsg67p4^H^Bf*DQl!gNw{&XiAMjwTtM%X$ByH$ zj|CmQP~t(nYmEAKd>Yca(Xt2~=?>hgkod_0znxp~nU-)9|E1pY(|74BmJ+P>sd{!i zd*?@r+A$G9X{~A-jJs5-P}fB?6X8%e=G9jMPTA4WPHf#h`l4p7y|Ya71gL7@6ZYBQ z(rjze!YBp5H6C?2gckWXA3{raAg1hr>i`#-WjeU1hl7?#UvVJcjIH#Fw&GSMWdGL# z`w3;{;V7xaiG!61hXU$N0aXHH(TT{_PBe+H zfp+sLPyS4j?Hx*Ra?~jb>K%$&4l|}F8{6uddwVL2AvHWmDc6YZi6xkQK?a{>b>DMf zb4+IaF4fH0a-}^^8p;MVSMPFp60y+}XO<=!CSpB^k7X2wt-?57oMw~RXKx`6Yfj!5 zuN>ynV#9IV0*ZNBA9z#@j&yfI>*8q=#ml<)%mDw-iivSh^lB{@%BVxkAJ^bX-w$1^Q5 z!X~U17;>B3sx#m|?pr}36-zVeR{Zn_r*EM;(y=CmB>rY9%V)&7M$-V%4QopR4u5J& z&%l>{ydrKltX-AkrE*PA>!c379eciD1hYKg@JTTVFgX@F~2fRrnBCw2zT3tvTo18 zp0>D^4sE=FI!29>bf84s|B*76fuD?Kxego>xO}5~&j7P#AyOkdl6?(w3FDbNYfk$0) zhJb@*`R3Fqg2&dj8*}g zuLTP$3mQ4)V0Zwg+lObyvB$~s<}?GLM=1C%_TZ1&GBp#ZH05Z>2qSsk@6H$Hy|JpA zw2`H8QUwK{MIY!0=b`b2{+>7Y_y#Q(PDJkNbuInrbPCqbNND{Wf(RJt_cRnlaKx-_ zY46krw#qpmv2f-->oA{_14I46ihIxlhQ0Mk@m?LG7G5LR8z73!)FHn)Jw;S}jqH-4 zuIY$tnDU3afaaVswJ&V?QG0msCGUj?4+TTzsm912T@t$TnG%3jo|wUEQF*b+-@$+I z08Rm?kh*F&57g}ezoc-whFf{?D=^|Wmc0av@f z;y&G(t#jUop%se5PJz@ac*Ydm%v^cAXu_n!CxvrDpn^gweI-&ArI4I=r;J+WH{Fv= zt(jBBzd}a% z@F8qc>A!a0mmj{l0usV;4CL=nI1f@7KiW&yjxVj^MW#4;_?ib_e_>W8#%hrGyPP#K zgm}tYi)m9gq85>aPv*>fX~z$L3>uTyLL4fSz3#*}r@Z`rNNgXbi3r3IUbzI>eo!K) z!5ro?+-s^Xo&3>zXVDVB3i=QAFV7-M(Wjqe+lAvc*!?fe#8gR)O`w1rW7WOmz3+&- zNqp?L?MGKBOi(sL__N^8{eb#`+0aR_c3o%L;)FuB`_h z{LG#XECOvHHhWUMpSW&bY@fqXgitcGCQ&LS95JGjI;pPQLWm`RAS;4QE3oH>TPs=)!YY(1p3Cj_#e&(Q(dPYcW=jV2 zO5fNPA#>r*i$oTpGHL5v;bqm|%N3qWQUtgxGdzJkF9T{*IpJFgj&LG*>Z`%NlOQd2 zpW(+k*7++ez%1#U6#)SwGdWK~rxmq@;8s4caTpVN972w>5g9sc#pdJL85WJQl+UD; zO@`7oEAgJ^C5wS&q9xCaZ|7JRc!wTf<05Syg6?okH1MqDRpOPQ4UGZ`>eJW9?t2i4 z(k)1DeT$A3H%hz|=huOxIs zcH#TiTz<5$S-FIr+Xc$2Q&slt4_G$u|7xYpSY?-;)1JBX+Joo?X~l}fPRajba4%7fDW!?gLg4?yA2C*ibcwhY)pI7%f?-Fy2TbhMW_=o5zf<-Tm} z^qhP8i9Rz!g}FSBfa9ne)Pv%6x)-hV9Q8*~bpBPVxv#926 z#h+k1>Z{wHmS?OI(vSNV#+N}#r53sidw|L6vJUM|h1Hnx&N)?Did*tkrRboUKfGpG zx^(#(YYR5%z2LKRGVMZ@j58QZukG`pDwYA8m-cKLli+Ps#n#o&Xvk2S%JjP5tXZl{ zU{SRxsFsL#|2Z3IY(TMsfSbtX&8`}YIe*#iH_LV~;5-M0g^Tqd2$zPw2L4_#5ech8 z7kO7`#c3avZahkjL`>XxC0Hr&8)P8)E&NT1&SsW3#Iv+d6Qlb~^=IlE*SA0Vc82X{ z-f2Zg;?MdqtRcp<6BuTnzPasx43q$_k2A$IVAw+tSmosz3#Ki;%HU(p+eNU*sskVj zL@Q~)9y1wPhh47w>oiO4qpqf%2zJR&8gpEGkNs(E>{3w4DGIP=$U5vfLKSh?PzUeVaEyrg{*Ky)fI1)bd&fYOGP(5PvRRjs85-+#wKN)V7TvKWm~s zK9=HnVO~q;y3S^spFWG}Ri~#XDOHFx##f#+<6mSNSm4fxTr#=&jMT~g5Tj^|&96es z_S!aR1biTTe-e- z@0-h7-pq6k&vqO!iB79dKp;J%C2<8cAh*wvIvgyXd~RE}-P)!#AhfKVV-Bmqz1^Vx z)!$S5SF}r3KmaIQmE2@HwfX>QvA#w5*7YmZDZ=IuIBfW7I|L z5N>-@N_R31P5rj{MZafN=;@vALOC z8Uqt2B3n~MBwap}b_6Ifc*MPl*4pD$nsC=Zz#13BJqDDJ6j-+sqq!Z1G-W=Lbga4;bkyLzQpHL)jVTGHSb zm#0dN$huu&LJLzr%E74S)cQ0AE4Hp%$rSQnO_yiSfbktB+mpmmUsD+LfR}aPnDrOX z!u5Wq{Y-NJL8+WsyHa8%$_#Oo&)!o4E0u;Wc#?ThvTMcYJZ1oO^LjrVpaP@nWh7;g z{ry(bhB@e`KB}l8q-HPV_C4w-3OOAAi^}5Jeu`j-GG!X&8qTI~z(iW(fh=e^*adAIa>=kETe!J_`1;j#X^s!Iz_kF&kan16_pYxVMIzm3Hv z?|I6Koqc#*j6=Xs);7NQr@K6?XCe{tO!1I;uy3M#+Sx%qr`8)AbZ>p-JXST?0QIet zYQ14FtGVmba@#%S&(!c}y=B+SK}OTUB{A0}Lrg&;{N}^qBiY&5eClDk2N229lYFE% z(%6H!%q5IoA&MtAQX<<7o5NS=V0e0E(b<7zJ2pDy&jSG7N{<1 zk+qE27_Wqj_Y<>hfV~10gg1qd-Cm$YkT0)D0qq{hWB0g8|Z zeCyB7N%b}fpt$?yHB{kEn*-*E;Q)EN$Z=Kn58c~f$QW~iKYf~8$qQ=FQ{cH?st!>a zR)%id;=k@4C^GVcFDUie;op?4<-jA<#ks13yK4e>_tN*+?NY$$-5jj?FAxGKr)hz^ zwRY_MH&Ch*_yP|jMneImbe|b~^EIk(Rv;hqxzLjp{HT|M9D<|4AZX}G2ilf@D%bUa zM}3O^&2cc5Spl_IFhxI5KPL)C?DQ${Bg_fX<>CN$9iA(1`=|G%M)4GSbeuP7!MHzV z2)=m}S3y|k1u*2B0V(m+k6#r+y{J%M1G%<3nqp#Di6oI!LOgU;~ zwa}AmopQy229m1^nw$IA%7*`Ict1s`VKzXO|Ka(RaA+4QkO|r7@qg$#P}v31GY%^+ z{~sAgLq+X>@k-D%Sq7}1b-j$=7xcnHf%}Q^t ze{{VJ_QWl)JL-oSfSiXi@Pe@hp*G#C!g5{d@HFQZrb)d{$kQi+0mTFIZ^nLWBNvQR zSg{A&)1?FF^}_w;AHS_!$@3_vG!0ze<(kXtAaC8L4VRxa8g-Kd-v7}!=AUl}v4CF}K_XF&Y`>zgmv=gYe!yq_x%cJPJ81m&M@7u{`P;izR zW`MZ`Xr@TW#bpoJWJ$b!+72!U+TzK14t^U+5`y5ZU~4fLvv4 zl2gI`2tnlHa$u>!;X_g6UBDGKLg^_VfJK!K+dO#lg3957T!;@%B+*6QXL-03Jlc7M z9WXx_Ak>B~Q0_Z=Lzbt@(l$o^1oQZ8u^LJS@UPU`S?6I;#AhWg(a%S~0ol+8_tN+j ztg?08w817!v)3(seL818h(urAau}1u>M|W^JO27z@pHoYbniB2uwSqFA2{>_M@S}O zbm(@7RFtUT@4mw;A23=YAD>>d?9$on6hk&pVWYRn@;mEE1_L`O=591ld-pJaSUzBR zUnqXk-{e*M-52TTJR0lcV6jno>E!%R97=mgE|x)Pu^?9mRGFHur_jyH`m{bc=rXdk z3B3hIcO;Y%bg5oz_N0~X%FRv?u8cR@&9+`qX{qh0(87|ItBST9ne@;$-16>yMLJQq1*g84ooLgd|Y@M#D6p21}#$+#SQo~xXI>8tllACU3Z()vsDb4*#CaVx{38NM4Cp|V3ue1>=YH^ zscUEs5{+an)yp5&4!1LGl1zPmw|=;E(*C)UwYjW=M@vv>i92ZJU1Wj_&RyXOQ1PHF zuMr-NIM^UD8*Nlwy0ZSTx2A1^BtL>}|BX+FNU^E!>@H|6-TgD>=Ic7PCBl|{pf8?l zzYs_c-fMMxto1Hg6Bw=doEG@)E4g|3U_EF{x%i1cc!mPzsf9(=4yQLa$D5sRY^nOx z*Zqwl>k|;Tp|Iv9bR5q^mQ*zFv+(X@WwZ2OD+NqQi-#NJzNokg5{dFTr-94k<>}up zL4Pr9&Q}L1epM>DKBTc*X-nZ zJyfoU;@Spgg~+8(DaOMpKzrYYJ-h4bMKxl0v64Ec!WV<5pN#)o0n)0sXbm&?WA^Jd_?+{?z&-C(J($MFP zNBdkrlNjBe)ZqC?1gCtX@=c!UaOqaN$5C+G46Kpma|vJ?6MHC&w$bZX#HKwl=t=5hxFYLSwROotK;6?;lN{E;Xc)N_GZvv)|z|_ zm!d>*kYcgAH@w%t>{ts!{9v13Hg)Tj=?S3e`(CZ0^04n#5OV2zb@S!AbSzfdhstW` zhzp5r&uhDR^(^A)adS)!SkQfTjzTTwW|s%o+nfQi9ydRoqL7g z{!nm&-8Mp6@65)fUGJBwJ65RaV-uIB2k&l&i&Cp{W99q(0z8RfE6A>)vGVG;-J?toZ-WMEAr(lA zN6`bj8kN_WAHgNAs9Q{qh~-p@;;n0>{`41nB&-jw+OeiZQR+KlvfB^|m(wgf!{&rO z8Ke@nL)zF5FEn@dH*tcVRCi^q5r1tHl-mX|xJoCfH7trT7a@lrwZT-XV&?IQ%{o%5)RWRLyd6Nfw<(~XG?k2kDwj#!e=vzyF0mi+Oy8g&BU zZAbP~4zxb>r!Mrrwr5(CLTh-moOyj_zF$#$!(`y|#<6AwX0|R{WM8WGOcKFsqZ?=t zix_70o!Jmv#}E8PddlzsG|iE}MSJF9*K=jO*5zxrFCopHi{6-KrpaPUA4+$zvkEy? zx6C}o8cr#>JUu}2TYjUUZCD6<6+bC7H$5K(HR~@xx0BWFs3e4YnE?RIBys{?gFe^rNKMPBojq@e!2`S0LNk zP}ATgM9H@AL36;9pcwg^dzUOaI5Ez<#Jj6^?89-8KB?6M!NLBvZ0|F1o31=F6JR5@ zeFTINZnK=5jGN@Jp&R@q8s@#KZk!4^h!uanz_YYPYusG3-*& zIkma*6k?}ib7#8qO4ieJXlKrS-L64UPgOK1#3rqB{Q&inGURd|c4V!)OTofu;)cJs z_>h(CX5-~>dSYg2oV3AXzfS4BE7hre;OQX)zKoZwGAA;Ww4t)O4$7;e%F8NL9CJ4XPiZcw}Xx#a!J3`#B# zWLc&GX_LLWQPBP~O`^mm2^+=snu~<(AzY+(a=VDK2%A;hh<~sL_J=pK8{iyGV5wH> zB!Q~B&|hgD>$%O;Y@fDsZ2MYBEb1odh_$12aW6(Gjl28rEKYE_zBWk}p=b3ntxjQu zOQZ8p&s#4H#M87ID1KoX%haKK>9{Md!L@E3`mu@49M1tjN2-8R23lz@B_PQ0w87QR zMI9lXA^si&LcAEC1!n?o_NvQl$MLAcM~F=!y_m0VLPujUqd7I)z?&0VlKS*IZRU51(t2cg~rxrX5aidfE19DqNKVCupw0} z4_*Vm)50^j#wb?maM)paP_Cy8iM%!~Xcn%xe^{wB8EE8GouUpj>lXfIXo?|N2EXy# zb159Uz|(u77{bcZwgCgi7OpVUm~uV29=A9gW)v;&v1e>?XVmGr<{^*s`u6f_$eP;O zdJ1BDsKGXmwz6?tYt+(+ra;jOf1*`}jK5vJX*h2CNC87A(;m%CTnQvCPYZekY*?gL zs(*I%T87mA=ngvYo(W};SkbN<#X9dj3la1H60gmHIPSEeiAmCfHiu3n)0T=UX#Em&l)0tLiOZ_vG@f^i^w=y%TqxoWuqB(DW{Luve-|1 zH%e+DvaGag;X9$@^JW;8!W6^7TjgQ8)~mPcR^^G;*S-v)h}oQL_@9*+vu^;Z55*BT76qL}BcE}I4i6Q^nqf7eb^)BJua<3yf|QzK>^fQtftDJQblIErkn*m$tUpnwE|MJ7^jK#+_d^asDwxOn`ROF^}R-}d#}Fsbk7FY*d0 z#F%&VKEwBG2zClYNHTpCT-Ol6-;&%Fh>C()o=RKgJ>4NxlV3_Lm4s^6W}5PZHwfkh zN_%QV<3=*$a^kR^?2*em7X29>L`igX*fK%I0QqQx7vDbkV{Xx;mIJ51+n35Hq=T27 z`br_W%qvaR`rsa|k>lzHE{hPOpOx17=ufF?sNpLM8omTGSQ+jvjP3sRGsIA-Ph1I2 z@6m?LBts?9V!i2kG^egE>;~}nsuoGK`l2d^)Sb6G z*L7v7&!{Oe)6ued-A1*z|?$u0s%+4Tg&|X(4mOO znv&rI|E}XD%)mpFMp}Qt;b2QR*ZJK>)B&Pn1jwj=kTz`DKPyEE8xK~4qi7G(m*Fx* zKgiOT!#CFiGw|su<=IRl0dfE4Xi+A0Uc}<0WP@;u!FJ;6#FTmCuZR9R8*Q)ksA`1q zN&?L%uulHhV*+14qKQP%ksEbGkt82VTD5#akhrE=9@4)D-`46KUxAI0+P;=S?vr z%6t>6WR_3*HpK0u&PXm16xI0fFAxeAM0cgs8>H&61ifHZyy~JMN8n82vT<)f7w`9H zAFyb$`KKXzg)?9Y!~$M}abjSD0gvV~AZAgYpN#wjq1Zx!;|c&rcWszM(Rn4SX!S<| z1Oxo#^O$78>m@_}PUt&2J|lO+mioDH9P#FLt=9CCGbf?5*xw; z9Wb}P85%AQRejSmLfN&G^D~TaX+OR^69q=W2m9GH9jzDWM%GOpJSo3!vwNKcOVuWZ z5vMf2Y=_1hWa@ok9oTfnJ>g?|Nkt4CdW)F{RGt}n6-_rwDxO^MB)k*vEM>=^b1Ud}N8 zO9-j45L|L3_t=LhJ7z2uk4(fYG(lUu5He_mn{(4okfFyWgCL-mm*R!t_9>AE*O-Qj zqeXN@LA_MqG3F0F;rr~hm)8S&*;o0|S@rH2KJOO| zFv;sT_Q*l)LVMcVeFz$9tTy2Cq=gXOj7?&KUmM>xhppkK_<#t;wjWs|=ySjn_gG3@qe({~u^E`>OP?v^sbX{n9lnp78rsZ9(P?>>cI8O8?lcEt; zj&n)v3?T&vBb-1US3m`esAOoKIRl8e=`9Dqm~LC?-!~IF=P%W#RUH>kj1N2!$$3v} z|KNGHOo+oep;X*;|KUxI58jzuU0O(uB7<6-lL6|v`|51)(B8@`&^E$0#Z8cjVODgp zI*lI3-R|598y=egQmJ8SYWB?c-D?nFkc^)9sV)oWq^K{PBuZWwU^Fi~lhLO_r_Px4 z%3-rDYhny=Z6ABr{zB6rrQSZ47vVXg}FZt#@E2gMY zh06pvlK3g*@H2~|ASQ+g#2c6xE}^6oct*hawb8ZobLm%Ak!7x^eF}yhHDR!3XFRhS zg1-W#?Xvmdf=%+|HH3`a!^bZyu=>Q8B+Bs8*n-NWc#+3R2TZv{V?Suf#9Jk5e<`57 zZ-!Mvm?As7`6_U55jB1 z%Azp?!+f9jP>1lE=UD{YhJ2_n2$Qy}hi_9@%44N@nC9>9$U4wYj($tj+SPNSrWH3 zQnns+jwTm7fm5=8j8M!>IHsTgzy>1abAOO^hN2W@hR#?y-GGtxpmue`d(h=YFYW_HQOKu{jzIj zqc7=d85oNAch!}{a;Q~VqOO@CD9ZE<00K|+;}Bam#vx!l7TH%g0fJnA1OX>AEO)-e zRw!-ER)G!%CyT>Z- z9LuMe(9C2>X5OtpffEci$1CadqT1MBI&4LCo`{67z$#Ww#c4?Q8O^mz-+Qb9nf$n* zno)Hl1@@@bE}TJH$O?A$JfF-bKz=g2x`X>Xfh4mG9nLA%F7A2=SPEt1&uCaB5^&Yo zl={$tjU{I_>%}f5#~lK@rp_0Ra>UZ3!W^vDB?A&V@32%+jCoxP4G&0p&a%)rV!QDZ zYEFJxKB6I&;VTpToMre_ObzbLN5OVAB#A_u%N+X5<q;kW^1{atxJZW29cBiQyrOxZQb!*~&2 z5eYXy^@_$NBw~0D@_j#e3DSxc8A0^Y$7>|^j=MyGBSh`t{*UQmR$|<0$W#15W*kBo zP_^1?skM88_eEEq+N10Y8w3aUMwDV&HB|)nD2Y!?BfUm$p4wSm?Lc$XUk?5P<`E(Z zArL%CIh@L~eC}fCk7L%%8iinXDp$vW`o)ovmAt#2-i^??+P)G4_+08%vVTGYK*FI)by>_qh)SAOj5iG3VATreGP1s;=z{S^F;Y1HgW_*fkl9bO~q(c{qe zav*Kav876;X5}DNh)FU&Ntn+M9j?uc+H9Mr`1PeGx+*tJ{rwO`zuopt45L7Qsz`^O z9kWh3n)|~5g-~_a1ZW_AVa%EFJ!;-d22T?Ocv_YdvcXr2Na}d<@+%0dNJ(e8zmn`( z`JuZbWlx+p9YxM&2h@m7u!XjNVi0NX*l>J{1gXo4O$Gk+2gyJ^-1+fym!I@Pa7XQG z!zw<^mYK@&F;`V5Qy@~Oa-D5;*fi42%+IkA$7N;%W|tdX8TNuED&9;GLH%y zNsm-r=FrC7Bf*{ympt^SBHB>Ug|K*cppecv<4wlCv2{PSdQN{KM?JeP5Vk8n4F-`}_Oji<>447$0sj zFB^maH`5W7h+65ml6dN@qR!+4?mRYJ0HW`|mC7XdU2JMhrYizU{=yWuyt!t2kZix| z?0EI>a@?NCb2VMEfA!b&C%W{I88Uv8K+CQzyAPNQm?c(5G59_Q@aaTsYqO#iW%pZ| z5p$(!!dHA~B5g4OVw1+{0U+`6*uXx!x1LLaz)3pih~uAdt>=&#hWT2Q$U4v9 zcDrggmKSH5_v|YrrB{!%OI-G;|BWk-7~}!|wd<~C-@Q-Oq~5#CH_>t#di$TSvPtF< z=lue+UQFxGiB~;@)()>0;k_Zdw2d>(D@TbO#M=4hUeF3-D~GznfI<$KZ{{lIiV_qO zZLl5`;yK88Z=AyfDj7>eVAv$AwPPU6r(acQQ+daL8q`NNzP)AxJF^YsmE$T|N`7oHAh?86T7tYEjQQ?=@rBdUVEpqBw9} zNPtw8KE~VBOk&euf0~CCRnf3bx~n+m#j%H)&zLO>Gbe}JQ#L=Ou-}FCwjs7~K516%srsrd>g9~6-i0f34K<(p2AN@o^uKG670%PWF9M8CrIEXg<5oHDxWp5 z^PhTT)JGiNPa>YUqqu*8rKR&an7U0*=)&bfM(7OLWSX)#P)(zc=3Q1vJ(l^@-Ncgc z)&iHI#Fe+|YS7kC+-gy8H**Pz&FNC($}R}xKkx`;W|~pVmcoJF)1QX1O1B8@$k#Sg zGLN8!BCk~B6|@IZEa>xMI#yY;#wLBlh4|vrqhnUa!O?pdPcy=%t)H2CvF@fP`O_Kt zwi~ycf&z*9+LAg#ivts{-r2ixOG<Db{)uc~z+^y0x?$+}# z(WMAnx@l%zA6NBS(;g4W-UZ?DVd6W_~@dv^c|4l+Beov3Za5he3np zXUUwMTH!Zp6=N$B4*Zs{cy&b;U#LeBfoVV4FE4)NYhqZN(AUd`pCX0aQBnIH*ii=xQAKpmAG`2Gvp0* z&~dV|A`VfNui*~qOT0i*cGV}~=hPN|mjZoDDn+EK*0hqhX0x_>#%0B@({p=N!p;QP z>Rxf~^mYts3?>++VH!Y*^0H5#?vs9nbOn9go5T0A&aO^d;p>C-y(9BUQC-G_NK3L* zx5{a>*Ap&l47;KeV<`c$s8n>jvKL!Sp#4_*uVPiRg}c+ZQ5BE-pSylE(eqX?f|U zRPr^nQn|?|vS~=61AsKkc3cU3EXy>mf92G-JV`A<*}&Ov=m=`~jAGl}?wq;y&%m`m zr}(H1+@(&$wjEvKu_j>;ZwNIVg>o#lO^hP8QC@0`hl+wJ-$vYI8212Rj+G2e4!lE^ z;1>F|_v}!XSR=JDPu`Z;OLOLRvo8fQ*Ws=+S6=WM0P?dm8*W@Ct7Y=z#pD8th1Q!C zOg8 zuX`Df!iIf>tpU#bgI!cJ0sdqi`&1C5dsGym-f{7I=wm>Hmox5(U-rMOFR%pC#+<6~ zS24FouiyRQb#yVDn~2je9AaywBMgp7ZPWvPTls-VN3bhDR|fs@N7?&*evn_C(aQT@ z0gt1AY8wV-0lgmzEBJ}Sum-k2ANB^!c_iit0isKBL%EA4Jf5kL?}0@?ajj?@fwQic zr~+o!#a90xH}G!siQC*GRljW|Y0x1Fnk>Ag2?}N1{R_|f3z82b?4P3M7oPQBn&jI| z`BOaW|AxbXmzV>b=O&dVV1qz@cXC;kOt_Vx(pd=362{P4f!^lQy{&<7`v%eQAO1fu z^;aU?3x4dQ6J@mN4GN1quXXz+`dbgV$fYNLDQ|*_r_i}mK%Ob1>&ldw)hfSn2NO}jMO1Hmm|Eux; zF-ZP(8bV|4|CymTD%{%){!b#8p8y=aS^x~D7yFb(@9k~9$Pr$&@~pL>mmE1l3M97I z%^k=eJ-Fb~yJfeN&HbO?`@ZXVMqLH6+qRP#@A4(H2@-PvBC3*JnyD=UYJD73uVQ9011rO!Tm{U z?hWZE?6e3R*>2rk<*`E;6>I?v=vlRc!)=klUO?o0>b}N_4K;`Eg^~|Hh`~NvVHYbE zHr+A~qLHyE?rLpOCHvim)pdz0`T69+p8S|!_z#laH_`tyx0qFVW8%lW)=+F*d5dKM zX7+VC$AdMSi9w*m6$_Q=^;TI#^#Tx|rZhz66|e;Y z^h+AGyL{rVFJtVZ1YMJ!f5YVpddwjStDC*ynUunLQ9|rL?*8{5^&(+8IiuwUl^r^# z6v#7(#{Lf4Z?1qE8a3+$H*9WH|2Gq0q}7DPwSp;j>)9olX)B~j22zT8{9`w*J3ymI z0(v{A`Hs9GJ7?Kz)Xb_Hz{y?P-%1>Kin9U7y3C&QmTC8Bd|9@vlPG0lPc4cgNBI^g z4O=a6pzcPUGN6u4gHgCU3b<_ojd~Qf46eDyh}kV02w5w z8XdBf*5!uJ?cMPTaoDni!jM6aSFb(dJM-dmiL*s^o5Sq4ER~{>rZrxkAZ?O%^|8uS%e$7l zfz%;50%ohpL$Zg?f?5pK#Y4YD^K*x93Te~y+Sg8~N^O|OY4;3b+05oSKuu61JPjt! zEIz$MHIQK^*hx_#IzBR(=U`ZoURoMb=L6TjkUg|%>42p6bHn#jpubxq-SyVa{D!Q+ zoW_uPPI00^k?bF_4=kp`eDZn@2vm|Lqi`X&WdC%M`1@}C%eR~wu!?GVFQ5<+)%h0@ z3p;lD6hCH<7SCGjqy-PQJNYHy{6IJ{J{ZgPsKs1b(p2}s1k@)EG7cbW_~;Hm81#L1 z{Ee*|MFaW*3||S4#xgTAQm+6c*6e0tj^kA%Kt=OZ6{gWIt$}t zsHQi($2tEn6IbG&@*2V`m3t8nx(rB0G*D1gQ11W^PD_VwS*(W`R33G+#PwtOA zR6dyDn2$VnkSvs|+WF&14KcEk&OmUBqjI95f|8BLxQwp^WWC-cVpFUr3D4Muc+ zCYwV?P>q-;B?`ly&8OXg=i#Q8nqY)pcY#n6(?4noC+0r_KE-E@h?GTaK4OaBgP(Yf z>L%ZgehI9tY7~Gq<)(506uZwv7_fR)i5=Saqt6q%Tw6qxQM%~f*yF0yJ?;Tl;%Jx&AClko+S&%6rsYoBhX;# z_I&Ozgxu|Drn(e&_3bgs_R}x(_VVIFkbXQ@iltQXzT#ZII;sH z$r6nC+SS7(zbUHb=Y<-6#OGSg<^wrC#@nj34=3T`0c7v~ zGF$rPX)I}aFYKRuEkI?H1S~@(jN|XArc5v8{nXlnblOF$(}J@5u7fbMdV;M~FVb~G zowI}+hfpP)I^U|QL~pL8YlC*BU`yQPCXh1kUKy)2Xny`WD*2xrMzgWpax(e$|8N{Y zYvAv<+kgEQBteAv8|%(LACsG~l#-qD*&gRFV_H}Ll8nh-n$2Beq=p>=6sA)0OuzJ! z=;IZXdDpW=KE~Kbv-xI8!)4n$VV1&~a-iHDVM$be%}z85q3=(nd$fU;kdqv4J2vVu zJMY?NYb;Ijo8F{o41$%xbfp(txAE(bG_TZ>_a5s3yKN;J;5R9ytA>FCP{^XM^O50* zph!Ac&vx+h6>ojXzs}UDPl851CduTL!4Mur zhbK3ysRZ_k9yF&ven^|bv3&-mz+qM0LO3$~%WC|CkK+;OsbGO(x{L&&gvTjHW*^zY z#CSXqRDk0FZeDPYPha)6VlXVr2N$8fS7_#^& zYh$Q5h=UlpB8D)?MeRo*G*Bg**CMn$y7PONgh2TQ=apx8{<0QGIO>oy77 z0kd?_rWZZHCe!!j{^P3uI}rQgL2E$4Aim_b8#%Z~s7io_rz?OqsOyc9M7b4ARo{|& z1r16ObBvI28g}?5g8VXvsMko8eH1a{%9;R{Ipv8l_64+P*IdgfCBsj-W;?M#8O}%E z-%0unMkX~nv_zRZUQ`^!hQpGj`?7}7ZkCjuI4 z%Hcra->#7s=ff1PdxLP#`xwmd3(rzxHQqxWw+@tWxM9}5F z2Z*6FJY7*TCptiL-;WgfyejWXDCnx#Gl_^5;_7j`+)xksQcyWC9T z2oMvgv;8$my!xZ1TT}WtCe6t~Aa=*W62rzI2Q(Fi<7O_c>_w^&W*cfh;hLYMolqvb zhiSkpp8r%Bk;JYNYm!uY?Tevt7I51P5_V~Wkwu5gO$P;698(HlnjA;w-e00>N;&(% zPR35otgAH_wCG-El&zuq!1OQc3SJDy>>`dNJWs3HEY-Wk;c5DC$5nV|4&3JJQ0#VP zyl1cU;O6f*s~E6xZQYZf6>I+z=+_~uYty^Q_K+!Al?RDyEDC8k7A*tAUnE1&37hR- z#U0>u-2)fz-zE)$O0RAh;r#(8|5&;#;3W`k`W-0fgxY=a18nvZ*z>k=M&Q^{IDspq z6?R0*HbJI@_2~`r1u#Xq!uG8(M+#*gh$blk(xon@8JpVd7d~~?H+3`Ji{-GF&J#Z0 zFC7nL;v%Q;q$Tj?l`I~a=&wD@FnF%3Hv4KUTqG6&%nSVp4QkVeV5eaAXiLKsWSuEh z7i+FJAeRt^7pm|j(K@>*xs!c53XaZ6X0P3@J*Zhk{mSEEQPScWK=^SB-?rv<1(5n= z--&g(%GPq{-OzMmfkphf(RcCmQTy|SL5(mqi2H&WgwjRoie|qfn>&sI`;%hCXRJt& zbZm{GiiU*OuY)S>5%3k9FSSCmi~i;7K$UN z@QL>W&iN78zh8zmr(=;fb-A&m#5kHSbt|l3!whN)@yiGj5}E+`B4WCNvdS1=-ADN{B@xQ8(6?CCUwy%Eq; z0ah}LGRBBqJjz*BYR=1Ti5F9yK4|Z7K88pyuOU*1HNlpnHW3~MGDNC@Iwx*o7fN9qwl^RejVZ|Jf*(gmAr5_0?B3+CoX6RkzKw0U?Jdl zwUM~UaHb)2Z`@Yo747J@V- zya`UqVxQQvqx|aF9;cG4#p=1L&i59al#Hl9|$yy$a+G*Y_d^^CV^f z`|D!~Fg7bBzEUut72+oMcKt(=A{&JW=Us<|-#1qv51VswqeY*j!cx8{Sc&wvxV&$| zCRj{Q0dQyRfb(i9$^kaudV~yV&>UZZF6!Lo=eJ3bLO8XAM2yjd7A7Y_~($91#-@U&3=~At`EbP&8RWWE7RTw> zHxsu8?0DHG?{~D8_iueP-+W`(Y3L;`w?R6hySsZnRN@|5({uOIvR+{8DClbVzrxz$ILyQ{hTva+(~ zX9KEqLq>N;TZqkmY&$*PyyH<`*2VO#CjzaFz3FL=ucff^T_CQHf)|&L8 zy`r5{0LN;VZ<_sBw|CQQ4sAAE0}~&f@423h9fL*imdB|&9mhY|dy;H3d+&S4eRA7?F)6uC6AITaIYqow zRyh3iLAdcY?o_#v)Z?a$+8MIPJ=HGF50p1;T$l~-x*il<6KMVMq0DsI(Z-<&#pyJ> zlg+2O;m*}IqxBCAY^#-Ba$nRhP5GQ}?>j{eIe| z7X=ZCGn*z=uiq?u)BNPgleZr~`hK0e4xbv~AC7s`+$D__8Sx!j*o{^=88YIv~x zNhcla4u0j~A57048XB^8esnM>sI;D;#|c0Etc)j?+J^O5|6q81d$r06Jf7HAkO56?a3h`*?Fi@?Ud5$=BEv-KZ89Y$--;o7 Date: Fri, 8 Nov 2024 08:51:50 -0700 Subject: [PATCH 06/34] feat: add readme diagram and setup files --- LittleShopDiagram.png | Bin 0 -> 300992 bytes README.md | 3 +++ app/models/coupon.rb | 3 +++ config/environments/test.rb | 2 +- spec/models/merchant_coupon_spec.rb | 0 .../merchant/merchant_coupons_request_spec.rb | 0 6 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 LittleShopDiagram.png create mode 100644 app/models/coupon.rb create mode 100644 spec/models/merchant_coupon_spec.rb create mode 100644 spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb diff --git a/LittleShopDiagram.png b/LittleShopDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..c04720d039d694b3c75c0a9307ebab3e2367d3cb GIT binary patch literal 300992 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 z zMg-WyJEq%{bJOa&W(7x<)Pq?th2*J=NB^xsJkEv&U}Qi)1%&u5&ZFk5Af^wuW%3() zZ1=d=fEONvJzt^swi=YQS$} z@J%4RqF}bzDm|CMegPZg=SXjUlZsSG-Uo3J5+T*A2BZhP8+vK(X+mqbB3zmlYaq6u z$gkTU_J|tzO|U=g07zC@`j3!p;(iqkx7)6PUYZvR#^@2rX!JleT@~ZOd-3LL)H{2( zV{b`|_0$u(rhDX*qq||OQ2!gKbyfHNfSZ~O#Q()4jp;RcZ-1}W3A+N{mtgJ`@Kw}XEx1p=&N4jH@*-foSW)?SL3*_^BXjOc zWm#)~%D50*HS^0lg2?;&*%h!4TKmaZJ)`(RjXZdb+f;Xc-8zQeglXAKA|@ToT$7v% z8#e6$77y)IXCLZ4k7>S>RA_+6$L*HgHe+sey$wL^Z(yt>_TS|Zwxd0g?Y^mP2(kOc zGn&IruN6LQa*ZF^X=7v@RFvNN_)5ALs}TC3FQI`k+E>N&+3a2a6ZNvi%ZuqNsmoB3 zL*VFbTgFNHt$2-awOM)GH29`DY(EFBgSCTQ7l+?7YfLb_LefYyi*r5zhROKkjXT!) z!s?DOcv-qYE2l@AZat&=6`^75Ix2a0;UxE}9j!9ga8Cv1q(ApAJYn&d38dUs<_!$P+ye%F=~qSJ;>i?+TF*$$(TwmY>rjv;mJOK9%Z zINf#Q?Opdf+oXz9Hn4Eib^k63tCA5BbWNAGPixXX**UIem8D;%Z$%Pz#w>?_n-`m< z_T@ZPt!~Q~lB9}v|11R58?5^^`Z*ESG1d`BkHiz)X?>-Aa3ZJsRTLJKO>ZNocl@E& zYj*+3+sA?6b48tzLAeC++RsqdNk?~GBkIM59t1UTtZotIH1${Ju|C@4I9H11cx=@sFgvH6Rd|0osjiQP-laQ| z>vx*3R^MEX?i||83j7iB#c?GSq?=PTw3yiflGp%h+|Fc?uMcf@ei3@!-&L0`p(|cr<>k-NG~Rx_ zC-F@6t}o68?QWYVdKa8l&JZ`k3&ITskN!$CSq4VttXrqo2yBj1rSVpowGgcd=r0I@ zCG>!IVI>|lMQB{=MD!ONZ>Nmj;(_ZI>JqI96%ukLi(z%sD1zIn{g*W?jm~uqqbC5Rk@E8#{8RNX6qi2uY z35JO07Y)i+Q@;RX#a8V4v@J|6VmO=P!70KmZbnSJKqp4)ciC#IR-YMd)^XcD^2|X2 z>=_EC!;Yfcifw_zLHrEij7{R#i60Fl!}6Z>5(i-}F&)>)x8WtRNCj#l7h|Zr87`E+ z7En3c$Mhd9UWjnL6^|n(=nrq&J_gocly4|BpNl;uCboLPZ-MhMI3TdOi(nw6L<7H` zDbNkqgTpg4(Y8@2VT;(TaQCj%M@g-`bU&~2WVxn=7}XuYV!4au?+=1AJ~22$=xYN3 z)cJt(jn}(6#w^Jc!Y(&6S@MtKVn+OFtA)AsFD$9A;H)bfc^(5h4lh!DgWhX@7 zXes&#)m+cjI?8o>CW@>G4;nes~bZ%E$??xPB6(^v#u&$t-Rr zavCTREyjCqBG49$7P=dt&*gixv7`>X;P(IG{n&h``1=A6rAt2k9S7qLVy4hn7d;Qa z$#Ko{4gH5S9K7UWtyRv4d8>nDK#Lq(qjAB)U}u>ofCnL^oQ=$lR-G9I~r5O&+`!Z#1W3o|6zJ4941Qx0z-E@?J-ro-)6;P zCyBOugy*T1{ex@A9m-nGC5E=W1{d_Re&5KeZh6z!i8RvU(w~PyaU|#%_mFn{$pH@n z=-?>Ks^?43Ua=^A~%Pe!aDGyiqhX9iog5-(Sa3#Ir_s5x8q;nC+j5I zxYmn&7J2)_v@W6Vi(inikamWtVQqK?FsA$ARnTBbM89fS)||%m<~w-caZ63ef{Y+y zrLx{0P~9iZ{vCU}k zrZ%sfMmfgLl@aEt6F50_+%ITWK!Mt!~f!{V851W!@DsRt1 z-yC5?&SC>W^S4-2<$|*xY8`3O^U%6qlGdJ0ZnetM>v74`r%*uzP_e{86!@t;yUKZ_ z^DNhi=P>oc9WQY{;(e$eC?Tp03oF~LJDMa z2eXOz)TVW9@YH5`8n6NY1&pTXdLWQ7bIhgr6pkJNEshno){-Quc5@OIbL$MOOh_Xl z<>&Nqt7z7PaD{u_{Oosnti!!w4+%P)G{}oZor>o+dWxhQ1vU)+L`y{|5HbIeWhM+m zf86^Su*&olb@=;wF$I;4^i0nU(q=@TZ6t2_jO3T@Oxbyd5*SL<)D_=qrG#per37vY zC@kI{>+4@0af&6pEb-PgiJ1-s*pW=h&%HqLmJGrm?={iG8o=9U&Yl>}_HEy$(gjBM z#E#hLAGZ8eHup=|OKf*a|I}Sw;wZ-<6;NtWyRxyIXTZz{SDoA0=x-)UZ8l2 zw`gQr+ak9jrgtxSH;}+xQ}}D>!*T=xBb^9bL?X_3&o|oVbZ=UXaUzaBS{p})kk_0^ zSdG`BZ@Jz$i!oMl_{5_M&%~e1ZZVpalXwQ*9if22(&s~|g+vOlIo)#-S_;%B^d@?H z|AVBQU!srtbnvSdcde_B_ly7v-54+Yoh64ZR6}IOAgd_U-x+LEJ1*~28JrNk->47J zGJdz%3hDV2%;dRIeQtsVz4hjoorj=uZtTP1$uaPJ0a(5ur(XESx^w87CJQR}^L(b` z@*l$4ZR)(u{|mnpONRu52dq}_!**}8@XNCyyDz7&E~b5Lsa4^)qR5x~+}vS$5J?h( zmc%ZFI!VW~yt6a0Y65LX&)jV#CW0&td|HJKML4n-=@jeMNZ-lU zs<*R3UQj}uAO)P|JzTOjiV9J3Da6iy0ni3tabjZK`V>a9#wo+76Si0SUBP$vms}vj9gHA7EGT0?mjAg z^z%u*Mis^ar5~@Jfxb)a9a4dqf96pSe#*t|vuLK3s}gt4z5$AZiz`EahG=gJcBTkv zmOEUAL0Kpwt{|pnb|&R4b29C?s&tzQ;3?1(uBKs5R%(-F<`j;q;^pCqh{y_JnZxFa zIIA_=zY<#TH?d#KP4`^tsSz5Kay~oE>-pYW)2rdmx3#tg;BM*12Pw;v)(5a4Q8Ub=yR{qQ$|Btmkt6a=bfElJ?hLeh?;XX`|P)Y$~7e^4*y zCOrE=wD`BtUZg^6*Btkbbz3IwYVHMRW99?HdmZ`&$a)SA{vrg5aV-^Oew*sw3KT|n z9G|^?jcAWj^l5xxlC(Zr+DvEXB;q;vWYb%PqhxWk&<*{ZbKGeVS5U%NI0ej?DW{(- zN2q>BeYoIIbehX+FzdMg`+o7S~QVoV*zbjv;eF%H!_&Oxr^OH)U&mF$FqpkSLA|_juhe< z^(If53c|g~HXE~5Q~5zIS>%Ytu~~J=sO;su(iX3C>exF^n$47=mg>-2+ljMMnj_`Q zR`V&(*f-g6FXfqVm9r9$3|wn@CHWLAA#ifUwTq@iX`>E^50PoQHazcS7M)L_iJRf{Zae< zG(|uPw3q62YzEA(-FuTx#%Ng<7|TaVE^kVPg~NyQ&|I|ly>;8QX(T)A_?1-UI{jm- zYxde|6C$*L@TD%|nEwElSo_hgs^oL1T4G)|^#Wb~t0^eC)159l;v2~lOx<)Qe@FtM z$0pd*7k`ePjO|htY<(q;_dmVz`@ur@)Bx-F<5l5h-8;7nA?E%o-Uyecu@uy}Cv)XZ;zt4UWgrP%~CVt;u ztl9$qi-wK-%}P+|E9 zNwuXVJ^uqDtOP#3%QB~*E5ds&ixFI5veV@oBr+T3BDJYqqxZmX-aZ~t*`(Yd!`qP{ zD~hCZhMJdz=aNE_g!n~eRp(G;`p>6?k@BT(&Noz{TPCCZqx2Q!*(Wv_*ESBVUm%DJf zOe3>M0ex7-n~i|1jlmmX2o_pF>9UL*g82Ikl24FIQF1SDgdKk+Tt5j7_w5RYcGB&U zy)i8V+sL}PbS_CJt-M)Ne;#^;_>|OrVQ6?*dpJ)stFG;yM*ceYzV|o^(e9jMvYkeI z6GS0n(tsL|B!}#5p_YiMC8kQ8q|tILO#|=W5;s>M74S%!B|g&cwHG8 z&ElRXPQp!9^kEChKyVkLo|y;UqMcxgBGW8axKr@$9YM*~oBHY>PUx{iuFa1L*)N7} z3ekLOwjWDewqtE%#<{D!xuTd2wEkgbNje{&`YF4^$Ve>4?*q7&>KbJU%{l8W_?q6Wy&NUJ5y;KK1BEfSRX51f4+Xs$5 zrGA%xikCO_V9FBW{vxqUz-ax)ZneWgXL%8KBeR=mp0HsF4fxufqF!k`^OP8gRkmKQ zFm-a%B!f_%J-m|Pc}DxD60GC;kK_#VNClWVZoA#}f|rDG2j!;-$aX@_hULpYaJJr$ zW;&n^-n@Xt@sYRd*H^8V57^!;NnCAl2C@*xo;gWCJZm3pmn6N8aR8T$@46>v2Ctk1 zKleiZTCRn7W2U^#`c)LdW_`rzJ~cLTpLC#S2tXJV37ZLTJ$p}&)3#Vf5O$n$Y^tJ! z$C0-=XKw8?Eqb@Q1$N3Jd26N zRv+RnE1YZT!%zaP^qJ58@DV-DQK^ay-U*RRTzG%iHu^?bqz*w?E8m~9g1Xa!F%s?8 z>+D~4lZ)GZ2f@R?Eb^XQU;7?BeK9$0G$@LO(W&)1$u)Cr2+M5vHl{2E1+u_+8YwQX ztm?N-t`1CICjW7Y_I@UH_@Qh*MmX}iN;)O>mnYS8l&(YihJ6P5ueGEng$lr8b-ZkF zZYPn@G+j)DTMYNphoN)VUK#>}qLg1cf%C0#56nzRAsun2mhSVr8TeB94zF9kD-pPy zEG9Ur!rAU@#`qf~ec+T4ULO{cemc^Iz%3kmZz`=YUUn99($Qa=TWb^Q59B0RPaOyYp)2%( z1YzQz1?ktS+vB*@)vLH> ziKaoWbfxvgvggF*DR}UM48ooKv6GqtuM#iH z9>tz(`F_2U14|PtSOBN|Td+1Mghn_CN|Tx*>|umNsE&VoXvnZ=@hD(K?~RAdJGI{x za~hJ&{EFBk&n(<)3qD61ork|0mVQ!HR&Z6y;x?Hx=3iIyWNgc>P3h)ai%vxe)XA}|@1<(q z`-*)*tHxdQM47DTe|vKy48DzuL+?g88}e?kZ#vcGD8XCg_=-||^dytv z7;m4oj({cKie4FDl2tmdP2PFy9NY(zBpkTO7SGa+fKcs#$NDD$bpj#SRvROwJ>msv z0mTRB*@U&=yfx(|%u1ZETF;v?~3559_ckZOr4 zj5f4lH`sz|nZy$H&`1%e{f|`m2u(Tpj~fkr{c1Q>Dk_tvk<>asZ9C+xHLv!AfmdY&c+wT2iJ5d?Bnh+-EbHy)Gp9tCL;cy-~JAqF{` z7>p{MG$@|y+&wvJm+&eV4~^TDUVNADARpaXkNvzHUcPJQ!oI}o@TX zWS-OYimhZ8ac3J{mNADQ&hfAIPZHZ~JvwnsV+Hr-#)st=YY75}qiIWq(GWvv^!k%l zrfkaVDx&aS+Q1eRtKGKshMTct9xYQ|-ye(b==gwqsRrr0s4rE`7xT>ZumiB^WAfO7Un`|M$BuRuuxYZDw&V&_-L1Qp?y7jI(MCGY!PCD!o2qht2a zkh%?lZ$$7iBwwpL~439JcZZTz-l7bml7F3ojZ;*9yh2@%wwa)SB8))e1EB9}@<4 zwS-}OEA&I%U9scaETe^!jWr{rbNw~APTmB0Fp0wy3H|Zyzt=|s#XVG%{?y;xWgiI_7ZPy*5V=vER1hwd2ib<9LQXpof(+?(V)$)(8hXxZ zwK`cz@O&a6+uLn~ftybxnODa7!#NjpY}DcG@|-_Y!usl1-|TH-mE2?{D`sX_RZJ3> z)CUu+Uytg%8~X6>UK2z4uu_nHHf?w?3-Eh2aVJQK*OUp}f{Diljyp@bL&bIKpQqM? za;5|i&>PYHs8~?=hVNr{gmJ_^=J=ib+;Q@GyxyGM^~25Z#>!r=+Yy~_UQdO~6tEE$ z-;2>}&?iCh``UNSi!POs#GIp;`RaCiG&;_T)4x~+2_K~uH-_mkd73213AZFS_VnFR zBD;4Ox%1)uCF?@a?@v}^jMQ{T>%q;0T&G*msWP z+h^KXHHlpwpg5W>=>uAvhmZsm-w6H?I_gmv9vskRL8M0z7}YxObP_a4%aZB&Zf4P! zc9WXBi2*4#&JgmV&-Q7HWY@Zgi3?5hHANu6qeIP<@@_u(U{7~!taE1Vc3aP&*+OZr zLuA2zkbDuGw zPdblY_g8U_K@oEcn)k2plZz5rUtwtzXX;odxZ)c?LM87bwZ-B1?e11)kbT+JN!L4? zygAhUy(7b+)~M)}X%(jAda$O5?%9}acs~BK7)M!ig=%C%R6fk5RaC0xeY@z+;tUDZ zgUjF2K+~YI>djr0dZo6=j0M{BFb7fB+8g+hX=w%*w;~5b%(V&-S_Y z>U*uLrc_&AF9h{D8cl&7-_{>obw=J!vG6v@6YyZd9|-LiM}O@m&LuVt&NY|;iFgO1 z>*6c@U+G=xZkXUREnJeonH;-j<7>lpKF{JaVV)xX07e$$5cu@!A!#6@I3y}qj4=Wc z&#Uqxabx@W*dttErxZ+!JQXus>q7sEHYbOj0`zlvKiF6b%=p|*;}IMQ+VCN+JbMhx zg58E7FvFt8Qde>F6-5FSw^J(Wj>7QU@&|}tq6Y_cAOO*J>V(|lhlFLIsYM7`ucmOj z`cwsD#R~dCWN%9aBK@wtcjI;a7xV+IGgjLquc(TUv%6m_hXqB>dEjMZH;&()@)paG z`qh9Gciwwq4~OG7qa|!XnkT*6y2`@LHjFeluXjjT*aOpBLaz&wEh1qqtac}(UG12@ zii)916s-9%hu+C7)lM_AP5LTEi3#QyQG8j7=<~J7XGO-LD4rLTLz}{jUOQyW)HFLf zCGKPF>)K*eOd^a5MMb{e1I`EvPWUsgdGeHONNs$AP21!6v2Z|4HAmfxoml(^Kh7t( zEVE5uGg=a=WVm63W6bN?o_u=mTvO=1Op8HRBmKITQ99P9M*u9b9=Rf!M1QzkGR>Jf zj(~T9GKoAPw7#ChU))R}o zNSz&OOO8UDK6JS*e` z=jU(5@yD2%LDQpWHHBg5TBk0)qI+|n-YX|dVfQz?OH*&K`(xhGgou}gkztneY8M~i z0^eYnjbyI>gs8o(zrw!5wdqk6Sr-s)KqEQ^RA@-zZuN^ys5|rX)a2_MuJTU3b@W1> zeUc&mF|uUR(Du8`$hRqRXGI$a$Dha|pOUCcL6GOw4I(+(^ZCpgq5jgLU=N;E>e#O3 zb0QTvu`5wdzXJSzQq6^uwdK@|KP)F=epYvOf;z8Jij=axtM2y>!q?W(-KFZF>iBvW zMP%(S>yN*NO!jSDvo4pVK8kYRh2vhk%ziH~6?5|NrI-W@RgkugiFBHW?I)Wh;;i7` zB105Z#T&q1U2@VubPU#gOtZDm@3l-xUpaRRzp+oakaxn{F!X^4r;L4;W~@qMM(lj% z@0B@(~sq+e0aiT|%@~F#Tgq&+59OF@KmWE~oYAV9a@E%E?o) z;)WUPiKyQA-@3*+j)+o$=XdW_aMqlqC|X;&2%a*q3%c^z_ly%KHjftHz>(*kjGabN zaJjz8CC8SQj`w$Qu5Ku@=CQ#Z#;K?qAyH#~>9Z{%{EH*8xFKNyO@XIE-*_`VN6zc$G^PB4-3Tie6A2@13y@uS)mB2phdN!EuQT@wLn+C8dPNbO85;& zLxow^N7epz@}H&1Rt6H!qUVBl#$X=ZxO``(2?VUeTe~PZA-rNuU&(ab+0yr6*Q46U zz6X7Q3Ol29_O1dSsBR24M6bS=L}olaF`|SKg*ik$J|4nd;BaN+u?UCvu>84A=eqdW zSuX`KVd3lvC(9FIHO|sv_6>f2WBK-Qep1k)YHd(TL>cZp8I}v@Udn=nlK*)=AGPySYCC3_rWW~ zSfPY2R(@P;_GjGC)3FoWGEP((<|9HonZ^0Xsd;zu?M95OV*xj+zWD1-qzj0hT#3V4 z<*pb6SKTt^XOxyg9w-U54H3sTmbPo87v9HE#gN{xkl0-pcXiIkd_@${KQy(fONrmH z-A9vQ>e22CywB;Q%jXO{&wO|-eM~;J1sBio^<)cb?&VQ;aL&7$4O23Z zrYBv=8n5uQ`)%HEUpZaw*gS6ZuXljV25A?Dp-AxZVGDJkn`imod>0++ce9?(_H~D} zSXSI>Hv93V6rD9DaeZ3HdVdXATIrUTnrzPW3ZmkcaO{}B*GBg#KW$xUi{(Q<MfKOL&o$aD~I~BP-RZyR*BfWo~i_n-z(j1Am{D20qhW-|3(Fzheb?m#bC+ zY`GX;x5rP-D;(AaCokh99?Z|IV%k3LZjFz8Un!mo6PUEtq2X*+uiH2+3sS70qGK|IT1a4vnRSrE}bTS7Cs?lgX>z@*-G_&Ze$rDx5%v73rC z##7~y;tLzbe?!a??LJBL%L=)-3Rp#3y}Xk?dt1Nls!gcDvy&qlnjPmHd2V6RQm|ne0&90r^}9KIP9hs4 zkrnH%Y`8l$g&3HdMij!-Ls(mBO{a+Q=BADVf>$Z2P7UM2+7x!2i7>sbskG$0* zevRQuu>(B!R|D9BKeJ9Jpuv_@&DQYQ(1np5XVaF)w)Jzx_8tG4663}^kq~=xb;l}h z+??pG@2K25%qjgVjQ9~9-*x^bUfc3O9o0{dljw`^)Ur!7 zR?Cm}*bqtjtGc`Rwv@E!%XmQ&V%(C>LVb6Q;97fTtcN4VwUq-?Vju&l0fauw+aL12 zmn0wxl%xdjOFE*comeUor#^0an^HhU{66=FXC-wP-vii0khw>#qs<7qyDu@aOTM4C z+G!wTV^5F3ngxf#jGAV>y~iMwtL^TaQq@?!k7eX=hF)@zED6*Hy9~+d^^0W5j|12` zEz6`u8PqAH7Wm&g8TNxu*?P;>{$~6HrwV8|!Ogp6uMpoUp>qjdS}XFR^7fA{6A}5Y z&m?;pcjo#<_Z`un2tBr}X0vCGD_qq6Zn=*}+ccm7E$jYY3TBY1Jbw^<`a9dOY2j(3 zgPGUzbehG>J6PK>T$tW2)Ig{DAm2`}@BwFtdeEeToC6X3njL6`k?#V#qeoaf4!U{` z>xan-57TwG+`?htfq^BSuQ!S)v7cJYFw}@yh>-Bw{8sZ6!?}R$eUVHMD5$@O0&xEI zX?NCX2hfDFO8n4zPyow?Tk+sB4Q(RQakxgW0LEZWm(F4MQ1Gonb&~m(kBJoF=M_N*-E&*p(ILU$dAvgTrO>g>E(z&uk*C zYz=ZwxN*T<>o?DvA+N=G^9b%wu6Wh#?K>c77&&&Q|JMf}yw4IK3EsUaizM@+@I&^J z+QO6BfDn462%E`@5hQ8!?Ww&erhg4r8rg4{+XBt3`sqr9_eW-S;Yq{i|_6lGM~PnJ6<>oY(?lpCf>jDOPFx?s98(Bp7S4!T&n#17wq2BJNnqOi|DE z@2-p72VopXI26Vehudc}6$K08N~b#GNMJjaErFkM9nX2v|BxV1yRbx7_!5r6@t{Ty zrVj15&gDLx23n*ciBenc&-W96!7RI@>?)H=gR`j#CnCf}BL+5g!0p!F3Hi5IaYsqd z?!y;t<|WxHjl?TUnrXeCDi;~RHD_@-9?V%iq3&@>$zZG#7Qs*M$k3VKj`o~pVx&QNHy7N_55{txp`Q!tOph z)MWh*xmwVT2sMFtJ7+y64SSsBp&PJ&ZP4lav8RPlkKm4Hs0 zT>w4^tiM494a)wyX_$2WVZ95&3fAm^H)*PnL-0}PGZfVaf$6ZNrVc)e6%@d^ni;^i z?AIT$fZr1MlEfx~w<+>(jby@;>iV z{BqOR7J7p>MqBOxM??Z#w_F3{MgE5=znIfe{7~2WdavR=WtN#KlBB~9kvndiucdsxtoOr;o`@CSXNj&10{u^Xa8Vj1U)uA^qO)@ z!H02NEI9iI88Du6!_LpZjetSpfrI0wW-)MR?}HA7uRj1E4XhL3sb@&Rc)O^5CE|_) zck#Tyhq;~v+!`mY6B(3GzkG4(jDJr3&w%`YVTN>N7)W2(K1nsbzZ0VcL4jmoJqXHy zNgw9WrFP0HDg3rqV00fz(&-6(uT0j5{LyPKXf2|6c)=ftA|yS=nsfJ}g#Wcn-Ec;$ z`kWtxh(qU*He?6ZCp&$jH~fDr)lanlGC5zM-EQ&PlilkK;7=5OBEjHv`#zEgV4}YO zJN=&~dQ+G`v0CXVSd8G5rflHL|E$e_jMe|4iDkt*{P`bR0RLF>f3~*&gS|fI##}#? zs?h*t{_}sCMej#lmXO0l06Mw@m*xJ9Y~5AJd|hQ1csv2sKHzsd@qz1bg#|bw?zic| z2M0Mw88p}v5Ge}Z^8Ra|y!9_fW&#TD{@tS;`e460lydg=prW!iA8H1c3ox@~>4_Ka zMjh!-pwp34=(%Mz5@zSIur4Q5J@6gn1xS!}AHOszLY7)louN~S4f1brtr)>w9?|2> z0-c5&NNRrs>e0DIIS1}~#+c^c@2e#R(ME0d3hH_4+(IgE?FN4>tZW21K|K68ZC0S+ zdu6W9)I7zAGXO^@8k~Sg(epNoKX^_~$YH%2wD8SbM))nz7tjC_9H!0Dldq>teX3ZT#F!-&G0?>1S4%XMw4(Jb`CGud&M)V5&CzQ*(*q*WLrVZx{7-M2D&Btexxw+vgC@$lqUvtF?U#Ua>5%Isa(HFZ|0X*K zHJ}a37`Fy~HS47OK9#> zCk^cZ>ih(y;Zi-6WV*fzmyR=+G3+Mgam9`ldX>-T6{U|I6u8v>=sJR8_2WN*61vmt z>XkVV%|j7A4BYXY_1;#77obsNpdkS+1yBkCjolNpdwItD{4^Id&ar6^5gcHH9BJx* zccdkB`dt8|M1%hCSbGlOgXB~Ll^%&i{JZ~h<*5lZ6PKnf(%Naa?E`kBI{`=W)V7^X#yPaTUBX2m+l;%>q zp*MmAkihk$g@{6^gZkF)!(Q)2sQ*}j`0nS3S17N;(yS_hQ4jzqNcjk(fq=-ngOK{8 zkc0K1`?mSq&adJQtA~`}HpkPAAdIU(jMj-arIn8_CP1-@W(ZiN=UEgq^~(Z;r4N7Oa z(@QO8^gty!SEzPP@t|0~!fB-@BNhDLu9_jU=;Rhd^9{Rq%^wFOIXUd+i}<><+eKcm zA~ntk7&qM(vwrY=ZHExb2bg)MBpaekiY(aaDl`$1irsN)K=gc~ru? zKc)y7cy3;n7DYvMdLs!foD{Q~UF!c%cj10FI{HtmZNR9|jBcU0 z2)C;mZ`i)5)N^G&ue|n5XCQovO)SL~U!*eW%9EPNzH5lE!=@J);sJ{IE#<%QY;W2x zQa=nJ{xlCN7q59(c^?L1E^p0AuVcB>RB=1d`&ZvtdyU@Uup~weWF$0lpuVpM#H>LZ zDF^v1t2dvgZ15dE9FQtiej`)|fe!wTK_~>!aM>(m1HC9Ey3lfMQ)#C=y{@7v8WZ8Q zpYFyc?P_xUr@?V=*>mwdIPS5M&vcj42tsVZdPWa1Zc?sDB~u5aVhXpkkaKs^2`6&t zZFj zoJ7b7yCV;vJzye*>1;!(0>R6t59o(QrDg%Z;O2%hHsk31!GQJN{o-y z@{@|=CWpq;O*>Cvn)qI^^(((p_Le^8S{Q^xJwM!TZT zFi|cNvw_7iby5a%?eOXvtFX$N%FLBov>o=|LeacCwZ_%sYiK76Dt5uW2VQ$0_i#<9 zx6GDOFwvoYjriZmUf%&|$KbfI3(8o^vhwl%V20P`RPkciGPkF5JNn+}HzX zv`0#EjgTVI2zzE$q&Tpu8^X^|U`^rjPMpn+E14WnYwZoE@6@DzQkxt4m}<9v*VVK@ zbvw`~#!BT2dWz|cTv@c3?n&LcTA{WHlZ{+c;YnBFtH}x*C#qX0Z z*~#WR?)fMy-A<5vRD|g{qvl)1jm%6t_S3rwyHH`4R%O13#t^G7>Q{Hvc+<;%x^luKXiJk- zJwu}j^b37;-BU^8bRTMlBYi+qze59uMYPNvP)PIA+Sp<=z!G zY8pg@*x|iSfO*}I_dy(tqr57_@nj7&CcdFg^KFWZZM4wtX}Sw&8}Z$ zVU^Cx6?U`MpzC0lSy3JzRT>%hE+kzyk?_Byn+$(KXdP0*TF^|Yz_SQaN7!l}30!YK z=#Fq3PPc40Y0pY@e8$;!kR%?hya9A3TuxPwWjy&wcYqGvi`mh#J#4)M5JQ4MfC#i95{Cn7#w)Q%z6Mn>&YCs~9_e)|73(s+w~AD#>MmJk4T3VwpEWOYiLq z?>O&^ZT=E2N0a@qdz|;HH)t#L);vz&JXTvG z0%{Jn6p!7Uu2>c0KOKL@D&~CSLh zmga_$ZO3-}$+JwDfTc%2>2q3kHF@VAP8c|~;4WA2Q+GkcR1@h9wJp=78Ji;@F~gd&%WNHHCqc=QmKPyIDxoP^iC# zf0O>@fa@h{c`CCE(U$AsINY;^MX*0KOo==USKQ-Su|_`k{kc)ob_AbQhGkasd|Y@-Fa zSMV{H56lTea*{u~PLeeECBEbBeu!L8ve~1aqwuk0u^hz`->ZGE7e*Li50y+XC9bEp z+$Wr^2m{BeOnO%JQnxy9(&*{7)z920*s&D`GJ6|4X>V(dYji@nJ=qE;wko1`-gFu# z4ctEuwl{xfNX`{uZ;q4bap5;uk(jH35_z}auX^neDvm)!U5i;u>hTpX*!8YZh9$KW1~Fr0W6`y>z)*=y5oNH))45d% zfgCdTMGpCU^(|uRS8EL-kDS~5h=)jt#9gfYlwxH@EN>?5LIC?}CeBut{(%83>89W^1<%$M5_v1@DV6(}3w36tw z?z;i{xT(SXmROZV@sRk>X6y8ISVbLr_?56F2xA5b-5mMKR6YS@`va*-V~~ zgxEp|#;MNZl+8cMobCcRGe4gO4-+J}hS4I%_{uuf~`N=eut)^-K<<&v9Zc<9@o*b z+-cPSnX~1S5xM8?n79{-!|8D1V$U$&e9I*Q%8c`1Wsh&wi(j6v^O^(Vhp?*GcnRW= z)0K&l`QC1wp$uwLsTKLT^^vpb9!eI(V~Q=2+)(n(ki!?imQAEJ>N|zhj+H#OHVn>> z-87^;;j^zuS2Tw$VqD2vls(tM(w+ULHSg{9`dd2L7}i7gaSsS_pU^4F)$c|Z=Cw8g zl=hIu0{7Z7z@UK);`>Vmfg;4>xA&}<^zu)ZMQd}rYf@aYFy)w2DSX{ zo>SKta>}ZDT)&j^0GSy~n{S(2@BSvE71zs|BYT1Xf~1~I%_$SF7xwjD?XiPncKQRK zgaPf50YrL+xfglJJKHaX`MJ7TsYNtIL{oO7vWA;3Jw% z+?2{W`Oc*~f2f5WTa>Pa21|fGf(5iyh#$?Zn7iUd2&RYx1CZzALuVm zQ~n#3`Sm5u87Wk3*pMK(L23EQ@Y8_e`iH5 zKqeh?B=L6-b+(DJyo_$9J1lZ@=>cyuQMVOurG?S*LFCg6+s7&+lGu?SE_1^cg{bgIo9NlMgN@sa6LBXeP0T;Z{Wvb%PzzgH&>!>3L? zarW8q&u5UDYOP_PbR`fLs5r~hojsuiEGxM)Vkq%~CDd$qLnM2vZ06g17(w7-M{F2D z_Bi*EhZw;ADy#l{)3dB;WyEy7aMSC}=p$)1Y=hT4BBJ=wQb+|~smUgh>CBv)yfmy`m*0;wtv%51| zYv9BV6Up{Xgt@up*Y$~wkg=U_*p*w+9>b=>pf$Z^R^bRoC@$ki32daqk1zsq#dKt?=9;uhZ)zN7YRFW47xRnF z&~YxE{?z=Gh`gKU32l|(%e1@_X{kwFyLJW}U-Q6s=KKm|#1^WEQA<1<#e`k1Ke}ij zQChw}6D||}`m-{U*_F+l9t|8hE2#lDe}B_Ek!OH*Lzd)0i32D56W$Rn19$9X(+QCT zZQ2Bxe1Fn%95~DFs(&FZnp`Uws|Ij94{izTb)(4m215gQiI0D`rCB7E&Go>sdR($i zw?-vz^-fam9`>neZDoaLrMC&pRVgCP%_fqfvnKK#=-rFUv`nS}O)GXZ+}Px*W#j-e zXsp3vStaka$uC(WZ*C{VU~EGkGs8xac*`B!bmCguX9P_9d70+CKH3FB2TdGdzrEVX8K%j5xNz7LVbvreb|P?Oq;%$XUiyjHZ$6@rgQu zYX6)JEDUArO)>518M!+f^f*AP3^;nk51y54q ztq$fCuxSJ|xZzGv5TC9A3ry@;O1n$wOW?Wx!|JNvZy+CCd3FqC{yaH~)0M_gj-NCB zbtL+6<_*{}w12jg96GwBCraE?--X@a_*x2o{|@`n>D9P)`4<#;!yn`t#yVQy8wm(}wn@-N`(J`oQhQLOm-+Y5&+Qb<;2PbnZs2$1!J>SaJ~6r|{=vUEr6aKNp+ zC?Zo#>Hak`OZs;#cyS=Y>#YrX4S$r3c-*98fFQ=e%XLeEag4#}ZmRPv#E`3Gg$>R= zB8!=xyhVK9zbr~>Mlp|s)S*c0wY(450CmEAc&T?jb;9cbwVEi(I78?GOxr50oq4Vw z5IHKErEjeP%ASW@5n9;jIu7oFEU~fRF%SX%TbI%b~uduIhYVd z1ZA8sw?3!j(kqhfpNgvv&XwOakt0YbqG^uOmNpXh6S;&(va=Jh?SfJJXEwI$X~f`&S4A0hC5DzW~{zO+LKN`h!Cg!z{dN zZYr8wd7qFacBshLZzt20df}(5On}TDSr33g;CKQo1;`Z-zqjvL|2SH+EO3y~VGI(l z)sbA|F*Bh1ynbOU9b29QZF^SV84y+ck@vH|Q%B4urW@^^WRH%4NggA6Sxz&wQULW7kB{1qP_jAI6{UT6CF<007*(*s?y{GNDjpLFB5E{ zqU50#oH>#2so}iQ{!dZHhQ|bfn;w6FZgss<_g55=t6bTka?9uksW7Vm89hKb%A7$;9T zYT051;q>mwiiG#3ipji@vY@|Lie{tj11QuaMjnn+Kc$yY5`Hz$E7F88+?yO}>8fFh z5H0aY0)9&-fq5w_J16T-4P09%p?s2Z?h_^;{VBoQ_(mftBRcXAde;KW_rr2}MaUYuyb{!4Z zdV4@vc*K!B1!%i$St2|^)w?ad%-H33(>*>?+Os}wXyjXc;Y*u2|v-}q%@Y4e_$Mu4eilzlc#P44Gn$A{&;?WDOZtQKFy z5OAyd`O6$_2ws){{ByD=QL`KVv-;8TYO_BxZUr-B|K~}@sx#{c(T@;4TuHbDk6$(P zl`q^h`x^Yg5!hhTD5(3M!EIE?9 z^4Nak9SE~Ce-3TrEL?)_ShRjdLqhF`Xj|2md)5jLA5 z0evlTcK^H3$hy|IJME!sdBP88fxzmB(bc|QU~JM}o0O_i-fFjg_1?1OO&-%*z6wlo2%o3-!A$L;v z7C|?#?8&qWxt4a4tTDEEttk5r1d3IrOdhXJ@CA{jt4cUjWh&>Ond8}x2W)DUPBT!K z^4%0J6HM?ZbtV9OqCta_*9Ymc=;N30x9i5^-@~QuA+^co6Okp(0>#^&AdYckxuX-A zWQEh@@Dzcm+Oo0JnQT6`jU+pMoVyaVrN=#M=i05aKCJ{}XiNUJ@>hp`TfC1SL%Kw^ z+MQ0THWtfjy6qT)9F~vPy3zgt^gNb4t&f_kMSI%SGNrcSn8ZZptNy*;`GRoF#)nGT z{l3kw&vg^=g53jF*7wYxTU!a1?PwRPm9K&KRW=&JRh>(kq(Y*y^+fRjRX zu6Y5$A$sqFDW=uv4T)3TR}wILx76kFtqNB>66nFDddX|wHJOVlPE-{OjnGA*=cj7{ zRft@DQH#fveedBiGwiczxT@wt(ZY)llLnCW~!qcPI8wJmrq@Q{7xs*>P7>Bi(I8^ zz8w`d(7}+BNl6bAdt{D>y~wxlWk&}VzlOWX3-ik1CUIruqJz_j2wF`(nWkoOsE0)D z3M^DU2w3f)9_`b#!IS@q?OWe1x$~aqX*KJo&1%2vU&Ui0Y}nafSvw>&zK(oz25M4B z-YTiL%UIhx--y&vnSv%p4Nl9{l^eH76RgBsl24)Ptlr$G1r<@`L_+87t&u$iJ#Me9 zRO$>fX}L26`*_18;Q>6w8T&z=jF7nv&ll=$Ta~k3le8gYp)Tp(^1@{*FRQq4y`Z|e zD51>V{txy+TkG=ldFOlSHy218MYE^fo_Sj{`t=7*YaGKp=jQ_H_2IE&KaLl7Y2{;t zVes$tCXw+OB-Z|lJ%!wq^(pP5%e>C#>-TU^i-WIyGukP>t|0j&!lyIi18wkFH~n#c z;5urG?Yv+Vzf>v{og5Z)6!@nnBlMK5;e)`;Fp4nQWvjasg;#OqGE%Fbwd`h}g%sTQ zxz3`IZz%e^SdPL(TSquA$G4_OyV2f@3(DZE=X#@;8Rmlb=779u8_Pa z1y4e>&pi5ej+Ms_^(Dxfo&(8||Bf)7BLiCj!RymU20ZnG$l9^4V<~YiB%Xlh@b34N z;gxmoaV$Q)hy9lEf)&|OMC(({o^XmRcY?if;!U&+@P4^LX2X*A9CSs{F<_??#|VMy z%fU|DJP8NgZy9A!UnTHOBjLfDN7)m_{q{7^TNLx?)|n}p8OTaZ{+(oHEmvk7x^icM zap69CgAulS?%)(k!Jkmc*ER{<^^N_|(a?jSx8WkovB#ym5&PDU3_m}uYOl#S-_Tf8 zoqcgkbQ+8b-O`mn>ly^eWU@k`-G4yKY(QT0ATu1b{wzs{P@VHH?`0#y%;r)uRkl?( z+RDpc!UvqiOKnn9{ke8X?+Exe#%|dI)%`1Zjw!+95?u_Q zjbbd`iN$s7CMt-w4~`D~UrVrgQH3pAmBDma%69Xrs7{x}enqKBVUdjM^bUO1Epv}X zBfh4`nF1@%dKndI_GA*H;JPfjk<5gbYxZ$K+izvIJW~uAj+1G)qdu&uIF6#ja>BN$!@w`$$F3Tv6#cE_o-=j ziPUM3M#@x~-2t{>uetAygrnnH^Hr>4N(x!Z*(=!KSLL-5zUR~)`p1Vxh0i4_R(&(BJZ%*)YPmrU9bMDq5LGdH=q8R8|J4OKj+c( zLhT%#uVlZN$z`7-T=bUS2c$CX_2#5w{2TwyUpoC__*Dv$C}yrCF?hyTm}^G@i+4S1z z5kPhccvka&B6M3A*mDc0ex)});Azj|`H)`}&ju=mH*2ThvN(7Z0P0e_9H?g6clT7~ zVhgaA!=b1cTZ>7u#ykw)HT@kV?qY)f0_jy?qAXOHvJa9Yk*f+AJ%CEt=^6nK%HVTp z7G2Yn_UR%~0@mPT^1D3F0W7?qhh*d^jj2ktsB9>;;Qb;MUdaHt4R|MZz)3QIP}eGo zHdjG79FRz^sLOL7<~*!Y&gXnV`j9r(|6TL7HpW~fd59@6z64Ww!_~yT# z1x*4KJX^Hs_2Zaecl498S{VA-a1b2t02D%--l9#v!b*zJ+5)*xHhvwn6Ed%5x5au* z%z_NVbL*`QCYW}DVjTcW6Zn>cTPdT6^Pq!X8$(eXVQe#~5A0Efr`v9mS$UOi3crOw zMJ_c9v?~vQx}4KocQ5#+*ag`9cKPi9nW*Xt?9gT9Yn4^KHaQRkV2}k6S3rG-G_}Iz z)&+$EeeYGc#!i)*X$7gXTut#xit;IBr|id_YO1$D>k>riZ3P_x^m%`=?1z@sz?y1GE< zsPyWAFk60?&rGm*n%9ir`xl`1M>znI`QNz`+H8M73Nw2~E0pp4gHX+D0rX3LT_YqvT@GJ|!D z57zPjgg5?wK?(Wi)c+Gl=AQxiXF&d+SycbbkpDX~ggw&h0v14mqvj0EKa!E|8D!F_ zfLRo5yRUJOaA~ezU{rSqEzOL9Hr;-*%Sx*OSZG84&%I#h_09j-3kZDI2z6H;jsD;` zesZy~|AFf2JC zNqBty|ojt~;?G^KYEmae%e?9fp;oK+%_@flv@E<^tfa8Lz z>JVX{?OAj|%77A%4+q`?zC~Gzq|wwaE|gJR&owx;bcO)r6Hp&CXIBxby7N=C27uZ+ z=h965#!GlqxM2dg#1{d^STeZql1uMihEz}5ahF~`%CNX;Iv~T;RM*86BDKExg zhv(!+picKn&kMVB@NNSrw~XzZj2Lw7DcU+lemweKc)^+YcZPEIY4sVT`?n5df&pOP z?iHqbv^EE#fo!pTp#l|Byr&I`zPytlXVu()n(SEwEMnGyNyu6>Q6+&-Af=&@Dd;= zu7zOV;K6Iwiz7U(w`8p)qFa7O6M6v1cLCJGOicoGhscF6Aw!hW`6m!H;}Jyn&;z|? zhgMwji2z=OB5q9r!1dfrtC*myKZp#@sd;|6j(6*;Lm=o8(5v@?d|@Z?xdmvL@;t$T z3L&}BP>g8Q?MAQv_P<%MA|l8a1d$a+K>z2R^{p#l{n!8AADDFYx zeK})<$Vjq36{23Vr4}?XzLyzv12`qU>1{-1t}Q6`A=ENjkcLpLx9-n-?pJ_};gSo| zb1vIt7sP_3d5DaGaELbh12u_r1`roxd>uDrh!7SCidq)>fsg+rZKe?hiUa8Y^-;hA zdLX`85RSFD7FbQOKk2yxg_VG20=GU+lK(K2^Ky`6HCz$^BaoL!4@d-OR^^1^*_)T8 zYjv>r@$kFUr91CEHjU|Xm3@Rai<+08nT-p9Ebiu=C&ysPgC5#6E8*95o z5e>QAzw0#J2p_yp~Wa?gQ-^*92WfeAU&#S000 zDeH!72=DjHBp9f{gpwN}a9gduR6Y>evC$~UDih>EgnnnzB|lC{!zWD)CZ3(o^*NST#aKAG#MtUqd9f6VQs;taSJg>DU3==!zd$aah%m9_Z}uTkWT+V!PyiL;}s zYlbvlN~V3w@_^X_Z)yGds{mqgth<4)5YJ+k{K2Zu{Q*AygPsmu@NgH>rX6X*;Dd#B zLCI2j;Px4)ZJcK%A+(*F2-$|`)0D17JppS}@P=;%D2dvYznEnVg(@}$yPnH@DL*K+ z&zrbUq&d5+W)pZ>S2b+p1hXei2fA3!&~#ImaZQAHd5l2Heb3A7n^ z=H%&jT??%TIwT|T=o26cc7lK}$A<1F%>s;s>a>=Q2`|?ZRo%g;4^B@q-IF$S%?=z# z$83W7+qOlQp0M7|M@<}b0z}`c6W3+Tb>u*)c->P+xcvy{> zj~4Nsa(bN^zJl7bWlLRNXZnDJhHWBy2H01iXYqx+EmT~7eutwfWpGBI_wJ2nC(0i4 zk8G-!+nh?0=XvLre7AH|>9gt0R@NvF zoHiw-yzlAZ5T+EP$J{dOM8sM8 z@9Web=p1bAwiejpjg~~WW~NYTtc@m&M%U|Q!MfPFOcF5J4;|*_@w3S6hCaM-0eD!Y zTE2PES`V`hVe6AvD#|_B_WdO-DBIkV9V#;F*?@R^V~~|7W_?numr%%oY}^|H)Tdye z0{w?MkzcF{QaXDlZpmfM18BWmT7CP*s|QC1+3Ddqc9b!K%W+XR1--HL*H30w=B>Ye z&gZJ{HLJ2Hw33Kyk?*xC4>7IU2<_d85G|*kg=wvw=93a1)Lm2c0VyUH5_28ljPoU= z(P&BW!OpRv_s01F`q<=@YqH6C^RoEnch0qm?>0RZc83d!uL?Ll1>lmR1$M^{OWoVM zxThXt6o1ydTRUyd(u7?;x)xHSexA~izYv0W##8R=a$lwGjEK{sz# zw(5FZhh5rts4*)o(tt>5y(Wq4Jdrq(dzBVhq4y)2abH44Ce-X;w zUtkCV`YOXxjo%QEP#x*W=Q<4rI}J|mv>-AdG#`7oJMAu5i)Ymf0>X@oP?gy-YYj9( z)~a2gMQ6jcld_35<*naeWl-jOLFoPa3Vk-dSm=$>kci{hD`P&&W?Xu%LjxPa-ItWx zJ%C(MzMMtos_ROU1`Qz*@#v%V&bwia14Kj&I1KgCF^zX;AhhQQltgUb$ukqnb?vV9 zrfJZ^e)JWN{$Ve=_(>)Q>Zs}r3x!F9KVZKiUr((7L8Xa5t~rzUU471wnoN87d+)oM z;WV>EUkl01}_g9bR)Veh|z zv3(iAW?>Au`N3A`T1>%Y0l%mj@ESBW_?HTaR?FugE}8QqO8s}QlQ1P=S%~GMhif6- z*oGN_u6q*5?P@EVO)I$ije8Ll>|R?vl7_>EzrxF%ccQGKy9F}=<#oj}ZW${x6WC*pVBs8_%sCJCsgmJe-0ybT)-c86enSZ0RA zOofe3ZF7d#Gl?Sz##IgW<%-hVK$r7;qVHEqbn1DT)m@cO?@o$1390hNjMKZXAa!SZ z2fo*vy2tz}%M!~!(VARodAxb!)T8)D%LSJ)cNE)Y}(qW4aS#30dI1fxYA zoHd_wz305=J^#Y@y8N)O%igp1UVE*3t@S+5ecx?0%IJ|nv!&G&ctQu%7CvtoeBoq%`o~rld-CP{|R|9 zC?5chQ(LMW*|pcddqv~aM3!?B>UjCOB!1|U`t2g4G zTh+k=qIp_#uRjhYIipvC7qH<*=TQX?sqgmf4|-)=YegFC;|ZQyKW%LK<)NtRlztyq z&9Om*hhc#8f^jF)k==nFIv-8;P6adobvUqpH8ykt_5KxgwRK*kBniXX2adDtb<<^zz#W&UOEKTZ#%@3U% z7WkFGqPaRS2YrVXk`ydJ8KpMI($g-ckN!!h^7oC&cO7Z2D#J&v3_a8w$B8|!z4R0h zTAm%b2h1rK!T7)u)I>RcaoX|g*@(rFRmS=cpTU!(W@a?4u()wg&%i=Rd%M%&Q`S!? zi$1Mb-;bUiI$xixCROxDqcE)dDagtB0S3JMc@@yw4`NDaL)bfzC(Y?nL z{?!YtdyM>cuas2G5JGZHGXZO>ugKIkqYq5LMn(&N#x7cumU?waSWT_XB7foFCbHo4 z?fsUw^w&1>{;{xQsGmM#u^2Y`~`C0iwt9O`HU&%YgZ4D3aUk(3QvEUN; ziWw4Y%FF&lINB6;F%|ay+#sENM_j!4V$+Q6AiM8w!_to|A8dkdm{A3Hf2lrUM1h00 z1QBafK2X;dKH9}my%g6D&(D0)Y4d%YUUn(F-*9>nTja{ezp`w5xoZ1Z=TnUbdVVWp z6$liQ8X&jBOM(q%(HaXiLJsR^QP{d$Bmu^Wi%Pcc^$yis76E;yTf>CHB?%gS4!iCd1FMc28TY-`WVpqkM!-vW}-(I(UsnV*!7 z3H>gsLtOm}njDV6-6kg zjy2F(PCH{Kg1ydc(kHiwj>Ij|8rLqRL+b3xHK*zX4;QP%y+^B3kvM~#kC-HKBkX7) zooG;0(h^gGb_j1$7`890(u3H$)~K7OIyipf#eMZ0Q2dp3ADiONJ$2Bv7g#5_(k1R3g>fAN1Lh>}-Ep4Kud6Wkpx110!&8`#Eby~7-&46Y@_ia0B7YNz$OGOlkPikTYGt%} zd>hx^*98CiV{_j>7I8Yx@uwohnH|1cZ1#PR$#lcfFB?H6VZpCXg#A~GJAaxkMtxC* zrHO=w!lvM)l=W}LQv+dcyX?5?vH?@EYmRrZ<7^jqE|1 zWJ_`%ug9imGUj(6E4LJUug>S&E@9RGGI5Ar4}Ocib4NEnOo4CVvqVmhg=79>Niqe$ zw}p&7h1bXYK*5v4uymnfZ;?!Ij@tL?_t`>19dEe^5S*|vA4#!hd7*l3S|+ES`i>S7 zrc;S_QNav3bvdX~7L0$SrqE08ym2U7X-JgIDtLxk(^65CHgI42W?%nN{y8fV!8O{d zIfnhA6#A`7Zri2aH^Fnm^HO0!$c1cN4qF@_@&(7nxmUF*if7CdGOh#&;f9f(#)1ux zY7d^H!--=@bb*}wB*VjPL)efGzxvh4fR3J4jitM*V9fL~%mQa9>ZWV)8ClRi_mz*7 z*LusMTgJJG!LqcwWH@Y>D9rRpb=Z00w#GH}Np6pZss%~G(#H3O#WnhwBU*$d8MW6q zAVkn60@A5XOboz;pJwI~4(;-{s0{g4i5757iZjWpeu4;ycxucIk_&dQWa@RK4Z568 z*iu$kycNlbur!k^v;FeaNvJ3GNQihQ+Ib57)#ACSv7P_S=|r9K7lO>7;66MVf|FkdPhKV*WZ#qj$XI0gX44by zKVSPji7i;9<~07W?A7~BiL;+ji`Jxw^tT7ee^aU>eUi~QTivoU}A?)2Bm@<|z5Ol8XU!0%$S`tmW5-%mc7 zuHCwM6cw6hWG`!SsiL@)#Ug)lX8hnm%^)Ndkt4)FS@bdn4{SFSRAeuOiVlzmf=s$M zOO#Y$i&V35+hYw2W*KZ6ybT|MP294YbOXz*gD2bp9F?Sa4-W7ZH9xLC$TA>JA1|QI z#L0;ihY>b+H6JvaZOwFH7Chlht)%loQ@}=~8E);o(-HJNAV#(G)12a~Ved~uV#Omm*Cq8QGDn0+TJ=LoaFF=pMtbZ;x4K2Gl{KG;&&uJPKtaW?%aw3%4r zlC{+uZz9jgohO!zlB@v>5r2ceDz8>ZU4(xc%>MqDUOCY7;g$pjs}-&3_i?2N?6rh( zLW3xQ0AMMiE0|enY*PNH{X0xcx(?Klm|H&-A0e3~GnWIREMwL8TC^0Lo_0x-5$Qx4 zf4h;m7XF42*+!m0obmGjR8_yBS3C&@-*hELy?g!rCdS)9yx?t894MS$f-S298^=d0zZM z8mloUdbwxiwe+_ECD+$zDf1l=^a7)mcb;j>bq_dkMnxIS-;Gqk&I3osKfm}x z`o!-=wx(YUv<4iOvb99fR$AQ;rJc)FTj-|A64RH{vKnUPEwf9I-S!Q(Iq78h5ps@; z5h^yJDR_y{ObF@6kP8{srF=x>OGc9e&!ZTwXd@e?^XW003!o@??`F$c6uGMtAKr{y zxd=7ud5Z9_n-uTw=^ee-=ASX79s@+Lz{12fxr*r`qrUg8CYJ0+f{M@)E|^4>pVC90 zV8QBr_n+>O)r^Dwy~VtjXml@qZ*lKC6*man3!&Q7YIswot!NGR{w301i>yL1BBSADZWGZO^DrZ;Rj>8C4*t~f28I`d!P3D_999_IX+dhV&a~a z?OGc!$_mznIa)cpJKAfL1mBzsntMMYzEBBPDIIG|Zojjcr6Au#<=>S3=34wyV>cL- z(*Es&-jBcNvw=$XT5w7ri=u42o3FdYpw!5}@1N-g7RhI~|IJ-K0pI@IcJKN9Nx_Pu z-Dtkb9V-cuCQ$K@-(goVE&pZivC9&BZ0u+&F?p~v`=i~`bmoea8ei7!W8GGRDEhJ0EKUfYu}# z6FIu<9T{&V?EV@O{noG*cz_~Q3A(S}qvLreCz+Nar*hXSKu3u=TBne1 zd*OcQ>iyeNf92Pg5wNEP&cC|Z=z_jg_|?gD*EIffnv!{MIubkjVL1gW{&wj3E${fE zR3Xn&9qIK!Knk?P7~7?3<$W6^!(R#V)lQSK^9t8L*dY2n3>b2`F%Nebadb9Nlh<`C z2*(B#!Xv#SLap&2M&@=cK;4hso2B^IC|;YHo3ox5)>Odaxmk~*=pLVGD-tI?Cr6Vb zNVw%5wIxJ_xMf;C7?IVNTiGC>y}569-A7U{kHwZ3Rw+?Gm>rj+nJD~~>9ngacZF)N67k}FpT_LuRsQoqo0fA?P0sLvl^|-|#Kk!;Ynk##D`!AfD%Ow;2j-6M&v1` zf@GhWypX5B%zOmhq3xuldW4QX)uH6EA-@WoyF8D$?gn!3H*si|-IEyTy-;2Mn!l{| z=xOv;1ZA+@g^0|hZ%eDaFG>@J(AeKOs$vy3(Dx~A1C$~DH&$R@{?+;4yhPB!4P+d> z&3;jqIfY+C@q=>I<# zeH&Wm5xpHNyB2f2>In0HPaGC@OQjT{BI@xI{U?)aI8n^VOspA%2!`PM>y^8elbn4dY>pA96E1}<)9)RLJ zW4un5*g#2C8sgML;)9{XFz|f5R`PaTh`(c{aDaT2%;WRt^hlYWQw~o6?ZoR|cUnKr zkuJ$xyQN!|S^pZ?kK>B(F23Rl9}fBKpsQ1|wH<3D+RdX6v|Ypm6hyrN8%bs2#>Q*Y zIq5Sk4Ja+?5m_x6op3_ZwhH3I2amgQS{aTL9U*S3wrBK2dbYXw z4!jVZ`z{Glv`OinGbA@;C}-zeE=7(c6xEgEL0R@b_u;XurD@Y%A`L|n#MsXG@r7yN z4`qVS#hKghO1-uZ8ni79Yc zv;sRtm?S6VtLBkUgYzg@Lzl(3Y3tV64bN?1AmTZZ8w}?8^wX7DTxB0rH@xUxn2MX- zeYA%So58T^%#{od`O_Cm6*WJhg!dZ(N&Vyd;xL$V)_LMZSpVQlCB%*K*2BDpX1A4u z_aA@()b(bR&v%T;e)=>|#;=`c@Ca{&eBOXa8Dcd1hsb(@bC#uAvCT?f@`tyAeZx9( zlfiHI{fXU$@uL-kkD{Z9SbR-CdaQCMKiXy8ZMm*$1SnrIpGhvsF$rtXUVjxqAK0ah zft=$of8pO=^)z-O z>hqOd&i~(&-TwspUm?aoQe@^DJ8VhLTJYu~)jD5Cy9=l^)q%iEr>V2t7-_oc%^x#o z%SjAZaU=Mj+D=<`XC&9n2s$0_i5zOWw@`D`+@rgbc3HM51elFYywHj9jCtw(2GM&5|A&@wo7Dh;1t~A1v2#mRZ(CHa&lm=i*~%lmGkUsfWia2mb@C0YahEf}Pxn z9YWLV++sLkA5Jp8Tqfu50;cXlFnSq*T$p;4yb(s?6Sv#bB{FqYXLd3t#QygJSl%Lt zIW<01Akt3aw>@d*?zkX?RwNw-r3fs6nep*A5O!<@YFk?~_dRN(0#4<;?GhMeYf3?K zb7B;57C#d2W(E||K%|oi1YaGF9+Nc?^7TKM{+CYy@G5Ud?ZmW0frbWh=v8EV8mHH`ju zb0Ts)e02G;23t-+I?d|o0MB3cB7*r9OEYd~Q_O=EDSq9|>A>)k5q5v82>lOFlda#z z4H8d3zw^F3pQH6#q0#}5%faMsq3ziD!*q_-XKe{yaj7GpC&(Z~GgU|HTZoPyFAJSt zMgqf6Ud17lX5qoaXkMVpAFwc+;miq$#o0@gOdi$@O#>xN$)Z!kZKbJoAeBVtRsYa+f8HI1?uJKsR76R685}T)h=?I6+MDJQx#;!|5h-5&=gKRJP2#l%z@4u0 zNaP(^qoBnlh>m$(K8scQ(+A?>6dpPuv#DS0A3ohe z5;jHRlDmJhZG@!SQ5$_Cfm+Vr zrKBXJg{sAAoB{vbGJs8+OLrA&(J@o^H8eZ!Nde5w>Lm zw8QeA7YL_NE8bD9@D$hA&2}P123!s(Mll*vHLy-moeC_O0Vltk&*JkjhddjyDWoUo>=D4I4d)@A+x zgx7kg+9a>}WB2;T(Bs5Sgy#%Ra3KHY)&yVjB{Z|8n&6Uh;E}dp<&)~?(^YJ5C?dH5 z;ntUJ=n(INr6V%q<*4QByuzDTV>EHPuOGM;dUkZbJfpI6NKwCM{_+C>AHm3Cjnf0C z$bt>pCD zIDKU*p^hx|D$Bz2*b3V;M(>reo#(3j6jP)acTOz*4*mMXI)myr|Nm}|E1KBOk|hhK zG(zsLF#N6?NOtYnA=Ghn&&gxHj&0B&oeIFCH2r;~9E&B7s(J6<=5rwOQ3w)j^!>Ba zhTQNj3En~m3h^I^rFcGG#R&2JW{-{&F^6Zp1rO|GXC3AHR_&&0xVQpGlaX*uIA5(= zBU@8`OfxYu`>@=EW_bgx>|Eey&NTl>_B9rziABYQW8Is!8>|CYr%$c%X`r_F!;Ru9 z9U|?-v3_-gVi*K7Om3}Ny+yx;K3x?=WH7$|BbGU-^!Dpqm}_=FCr)HV*|k@cM8z#emUi`Ex_?!B#bIlI3B9|g#|9x|d7uyg zHSX?de`+Il2x_n78Fec~et}wyi3NFrjXFmCTeX+>8Sw@sP&B0nCP+qty!AZign~#f zP&wmou62j9!eEkPFdGk2DBtNO{q{|eQlk~TI-W$A*FJl}(O?27vL65aV>hFJ zg7&mH%Tl8y=7&AjxRuuj##a3|G?MJ`I06@D8|c+G)Kt`I8oRMD4OmBzbSOFu9akSh z{M_}AYboQkt~nLJ*Go4=(zOsfSGda;UyJm!k&7;fhTc#l_9k}au-PwT_Qa2~uW<@&pq`Cc5ZSUF6pz+i z;qKN_dPnvUZV6Yc>*pzKZ1#$qx7h0FW(XM-Za{M?uPc3vHVP2BxtO!W6e77)N|7qF z)WO>mx*{8WT9%~lwrPAguzMer0tItMzT8O*g{%#zqQ1lxKX)$jZx=IO{3>?%Xzrbt z3oqqWS~wVkq-PrAFhWfA1dUlLFEnZ4Ox+gp(baf!k>l|eLFcjDzgXB2S@-qFb( zdw}RInv^d70%XIIFYmLDn74n&M zkqQGr7?mdX1ts`1W30~(58DD5_AiG>kThOs_r6 zDaE!~+R$Q75RXL9&WeN|Ch*4bITgit@wZd^Or8RArcYjmR5fYWxQZDTsc0#;G9m*w zApx!{aZ!+bFAJjxI6FfZVFyj<3Gz;RyJ&CU&s+Bn097|HkseD65tP^ffur4%J^>dM zYUi)1rSQIE;$*RdQ+A>KxbevB2wxp0*9>YzdxY58v^VjUubjSr86_)myjU3(rF}R6 z`O1tA^hMQ8Yb;kVSpeBqFxIM6MQoP}V6*dgS=uzYrJjmcrSrgv zv%oHkU{k-TbP)Z3G^&VhDVi3w&a%fIsLl?YLSxp8uziYx0oMs2S~n@K>#OpJG2u_{ z0Yjr_j~$NQyzw8pERCPE;1+YhuQx(Fbt%kPyX$Tl&bZ7pxQx{v$O&+W!kz(ltDN_s z;MSvbl^+jrRU*veK_(z>YLeIAK7}ipaX^o5 zAvlh>McmysuZwIl9En~ALZEsScr;@av=+pZUG!@zn*=gEex&Dl3e0thJ`$&~ zzY@FH8kB!O|HN4KC|uFJlfHJDiePY(0FpCcLM8w|NN0oe514=@nNv!^nMxv8RX;{- zF+jAbK_$cb*|caK`43zF$4~8iQuWmEX;RcE30;zrU^7YHAhkR|yr0wEYtQhtwT_?G z-Uv9<%~-nAZCP(o&V*gYSc^N~PU(iqEU_XK9EWq{yz9%+Oo<1aUz`(xv`(l}*7a+N zjo&b@h5KTih>XsNyCXJ;f^wCjx7Ag44OC7TD3~Mm5EG1nK-r4rcV5bT>FYBtv}}t) zXBY3{WsPne^CBJXa_|@_vgZ4ei~R&80llyUisks2sqvDVJz|feJwQ1m>};;tcFDRw zpC028O1Vh&<`F8TmG+_~z<-aTcs}}TY8aSYwNO9P!=^aCsMo}mvVryIanHHzL`M*B z*iSBu+L|16EbbFy5!&rBSG0PJW*Ntt;3+Dh7D{+~xK@lJg3G!&c|i3-2lhMeSi%E8 zp?3d(XTYrJYVY!u(Kmh2WZ91YPQSmhquFEvm}C{yeWhH=NU~ycMybi=3z(}oX6)&B z+x(vX917>Zq-Osb!1+^MtDT$Z7}>?vOHgo=>FyF(rFIQrh?DkbM`>9L1Sa&HX$fNA zFP3ujTVS4(Eb2k&vp2z4~Ur^vSpoPKupgI(YVxkl%9<RRc z)ug+fcAYUMiC%?9OUs`7YAi2N3u4$eVM;}l5B6zM0i4Ej1b2=<8GkBcVD)(ou?Rp$ zb6s_7=EkSDeKvlU6TD)pQu(R6$RvC1;OAJ&S*98-0Kdl$Z)8QsfI0`eZjg~8vS46= zkzzIpFX)n*LF2(pAVO~OA)l`0bCyISgW21b2IooS*{ZECH+Sev;1Zw8#85Q8 zVuM}L;bt7$c^;nXQXjncoO$%Pce?Gxj95d4?1_i0D4_84L3U;$)QPjL+()nv2M^Hl%atDA+W4p zKON^@>+EWf^YhjF)yA3_%Vl0=G&DNKx^o_V4gEE7y|&31O^5Cwei@&4Qe)3}{!-Z4 zouP>Xh2>=J?XAhGWvJ1wA*EW?V#Avy99NRL?oG?;?OtS1qJ&~0whavh@}7EQKyPC8A|Cu)N`!9cX=Lc z-%e;3lzUX?EGO5Yc?+I%^39aL(-#96x}kW>&kscduJ(6U3lgt>$WzR*B$iUKV&J{3 z`v<}gH#4gK<} zTDsEiyI|Ch^NXg3_!+>QAa+JM`E;`9KylWG@i;o{a!2N?I+prTqmwm1 zRD<5qPn-IVk$RDSvwj^N8$HqnT`Y?egUxmS?0Y>>Z@wlNGek8NiD)n^5RrCTdH;r<*k{v0^iEcjlm@<2KOxUKjW6sy(L{QY5BUP=Z@>N^Kh*dq8@CY0^vlNilFrqC?h zDw-L*T#GkTF9RGcI~M?-`CMuy2Sdgdw`H+tE5s~fXi~sg|J4MJV9^+id$cz~Hz_g+ zf7tP`N6b)zcWvU7?4Y9s2i|zl3q9OjNFH&eh7&%s_kF~pCK@m;};R9!SA?9v@Z;ZQP+Td;QiS5YE!IdoF z%8!B)v{vHafQ})2JUJSik!mMH1HKak#5?Hj>)k*;hr8;5FX;o`c3$92i1T^@xM9e@ja&Jj#s%Sp|1|D@dhUN<;lINIPO33Y zLk8dtz)Q|{N8%-pg8u{I6Zcz4*kQSn1FItn7UdY9!ccd0zFaV%pO8j9@v9XeLfXQM50KYQte%blIINZ*He0<-L_mcyF zDFKmdrEDa4!2bEa@E!d3xga+{<60?h@Kf@HKfV7SXxovKl2gQFgcELR0vy+OdgWEY zT>}B(he;Gb(;2!PlB#TQ@SL=LLstVlrJfjbJiu21aI^pScR?h&ymI8tzmH6249;BG zYBmFaP6=?FCo>Z_RWenAD;2?&|MPicG`Tw5xdFbCtDz<)n-fh!T( zk0J$m!NC%~*jXw#LyBfthZ8hWIB1!r8~R`h6(ZLM-;M%2-^eXD9|7>y)bOLgg!`Yy z{ZHfKhV6fPESaK~u*8s~V0H7p#rifVa2vvbuR9Gd4H)!)OCK%urhu_2 zE_5^fu3UsZHO06&JS?rqNcLB~m$5d{31H8u1Obbw4`BH%I<2XV^bGjR+ups{MX8!U zQlzSC8MOVePen59@}S7<*Sqs;JKX5=<^3A48qP`+V*zkeKy3KjYvWCM;ouHX5Oa^` zdC@O}wu^EHfX+1QV7GNv7_>7`7`#8=e(`r|>;+K9tu=Z_0ua16;hGQR@OMs_l~d-u z53gQ4eB4ZfPGdTIk?1qwTsm*&eE&GqxnMdE0T!OVIE?Fl_D{6tdSTEL1aR$h2CQ}; z#6kqo3$1tAb~*K@fXJLLAO^JSUmmtaYsPX4h zgNA<21V=yuTec|oYv{fO?95W8c*N2{Gvz2@-6TlB3lVdS`nMhwB*s5KZo9gGTU(Hc z;d~cIL_V*iZB<`xR!>9^TJWK}lk%@|o&z~DsrV_Jq5?|kGL#Do=s^X_Cks*2^p@_a z?>{X)znD{zxugRN_M880!H#RTohHm^E3krk^seg5W5lp{pJSqS(z{a8L!eE@)pRhb zSO%vt((hjzfOWknzEENDSa0MNj-kKB5De_72&QrT;QCt~z096UHe%<7Nu4Ds z5x+s2t%3(P;m`pc^&C4-kjiu);K>^P@zCvk4#N$sTSjLIUts_zqw}B2I^%}}|Jccp zz16}85hgLjbc|aJojFwDqtE)N(U|EUlnvnTh0$!+-uNBIg@P&+3J`#80#C?t6&JXJ zpOEyopQ7MEGX4Ts-SzLZ9M5rwt4UeKGJo{iIQvsQW^NnuS1QmqQ8A%msQ!k9N4E z^;765F4!!hDFKaI_nTHfkUzZ)W4LiCb9?bCPSk)*{N|}WPeK(dAxKb&mvlZ3xw(%U zy{3%L8ZjXEwh3A!NXG(-ASaC36qF0RJC zyg-}+I7GSE_R!}A))u$v+=6L9cY&%ZPY`ev%WhfW5xvDv1mVIXxvO2wzxWk^N5(Jj zK9=8Q1ko{Fa){uj&A0D9ylU}t#P{6$RfFf1=go2OFXKTjvcOY++^?rwlQv}9=a>CR%C^o(7UOI(T83bT104G#uI$8Nj*;uI?6*(tYK;KRfbEMsGt zpXkv>1DLV=VtBz}v-DB~{CQFSPMH5>%(`cA*~vC_n&fuE;qj|*tit4kC-KLZ98TDh z>XNA2aWqHT>U$cfC4RGF)u*LR_qpcs55WKK_;G%1jC-d5pIQ+8_D`|+lJ}+WUtJ6~ zPDkro>V>={e~!qV?;Ks0ort(#_PFI?=O&lh>LMDSE>=s+7PyjHrJJd3X_Q~ThptS0 zL7a7B0?PczYDaMP1I|OjjaFYKtF{YeJ#B7Fo)#GKr;af<5HFGk-F+YyBREgen910{ z(DZ}7-kC2ObV9*ZU2m<7lat_mp}so(2OpYD8d;D5uXo3Mj97}dEIq6?yXo#*rEY!~ z1YVXI4>oU(+0NZ53OFidn|{X9c1X?`uEXw&wnx62B}q`w3gKk2|D($$6-wHa?VK6* zQ}bCDTSRJ60MhGyUQ6!r>}Z2YJoB#VpWg6=nV+w{D#&k!;qs?qAb*OO`DSm0Mn|jX z&1||9xf-|@bs_q%bj}U)hE-d?{m`+TW1SmIES*G$v7HC>U z&knL0GuQ@uKdkQ;um4ls7J8fh^vQO**0T$+NdU7KCV8W7w`%cXe7oX90NX*;@thdAL+vt%Gf z3tg5fwJY1UzU;D{<*kYd+TjqbYw_GO2wwU8w;hoHzugX3s+e_ck-8RsTg=Bvp zlA426f1hcuI|~nzk4%WoH68=Mk=HF3Ck#DQ1+z){w{ShA2PD2|*ELZbX3B?~IDRX# zaGJ+`c$O=9KOPX3${@bFGhS*YM5@rMwJk0wN__VCHBdFox4IRd|AU=kNiw9&aog%Rk27ms%3L z{(xO*l(pPuKe)!g)Nrc>2({$bo>N7#PpAb}+*GLBJ?2|`5ic_%sv$=j$IQ1$;H zO_!I62%dp~YcQq9JjV8W)-Hxy&I!W?5d8+9WRBQ$ijLxM?`_+^JmJCy%*u(S7v}>ep=po-*C|)h z1JnS4dl$e=srV4r^jhm$F4tujkSTE`AR#@^^7zs?{V30oXr-&OVQjX@-g3D}&cz2v z8XTL z2cbMV9=HA|AgQGd1;!7r03w_)%XG(AM5%PM)80g@qvg;dE23MJXY}YHG?iEJRpdqT zFYU8sIdgZGGyX4|Bwt5&6Kl?S#$=9okJw}c@dFFRd9ynAV0Vi6ZLwxyZwOBMjvQA( z#`9#6v7_p>s=-COx3JbecBC%CXr!*&r~AP0qRSk0uL3<$78A<7r>&Y+)9~}@&`sF} z3GbfyXd|YRKF>+js`N)&_U`^m#mTxC+^Unpo!p^?tLEofXHg@@3IRKN1|dsqA%~pq zRwueGe3W1QTl95=C!G9tkW!-N%22oX_9J2>my$dF%&$DpR{13VnC-z6`Xgclw}zF8|d>@$y&C zi$~4mmUNKBze|+NF>Yu=@z;%gtU=tC5x&42QT5`6`^~Kzz02rK*epM$UlG2H)g72etOT+B5qvEr5Sk zG_mDgF2n(IU<*Hqi{Pg{7f3u(k1B_&BNO1HRFGAoha~Abr~L^U zbfrX+ug4Zk)=T8d^}bRoe$?}J<<&inYo%G%5fxEN28IqXCBt?EW29qYHgdjzd}~Z; zY)TYR7L^zKWe9-Re6j~@-QPx1&w!~=AK5|Tz7 zAr$B74f%+Cb>U5+20KtP#S*wbz*pYzLWb@9TYO)9R8T#9(W&YC#wbJ*ylRc)%Vk&;AQJVT$DfFUV7Dr zV2WpFnWzB^scswXY@w9S97#e@ZBtG@>8!%e@8k5tc6C`Luqf}6lp+M*A&}6;&6No0 zjUGV1Lm#u9v=codj2RgT*aXJBDemg@LyHc4hBJ?PgY=0!#2W+<5E&ta2;6nCM!ZHp zr~h@5^YD$fpHVGFa_Bzb*feW)J{FQl8w%t|4Hn^D4h(igUaB4{@YWSJ<`)AVot<+$ zp)&y!(JWn1G4BH334PZ@G56q!NbB}&=1Z5UF7Z%QF{>i}ETJX7I^|-z?d4y$tZ$y- z(&;-ZIo|H>AzM#7Lr#Zm3wtGM2l{E3b23Qx;GQYwXNsrZ<9gLaxKuM0*h!uz9JBi6 zwbEkPRRXL3skV&K9NrrzT2j90L)1JUfEgcCPtm-J^(O9o-b!P?WD!h#V0qZLVd@-?H`nJ6Ndo)Q%+Kz3 zcknIlKIu}$I4&i+mEqA3cdal4FCY=I$AXKCeEWTh`3S!GK7)AZf@&vA14dS@eh!2d z^?EH>>f<=go-_4T(c;kjv4O3o6Fw-L@ zdtPy9B9HLk6lgvX*25>T`yNU6#4?1Z|KOr zxhVgbj$#jMT2=8~T;vqxZ5Xn6nZ3cDwO$k!`c`z?d|hl;t$>3?2~+aYnF^09_Y*b# z#G5{GJWVAsU$K%L|6kFXWDY4JyyjFSX*TBCd&zQQU&V{znX*gD5CP~U+U<6nZeK)D zHepA=x@V{}6(O=Bo^ED~9nzJ}Jy2dM$<_6Vr?a_fhNcY zstb*}fvgd)5jo)~DThX`>!Yef+PFhzWOhGi;#4*K?S^P;DNx4uQrfda}u zKf4CuyqaEQuQ?oFZuhLA^l2fDHE{iJU`;3M!RJM}E!`l6AlyCy^TiL}f}=upb*&LJ zcQlebG3oLG6Q)X1Rzr(kOb^AYq}m)SU@GqVtEk?gOg58>L_5VuiCxoEfF^QnFZS~_ z`~?xE9E9=n`HRZJYl7#um|;hpN1_xQP}*lof@lu_8X=ZD_DiT%P86Q&){{aKMBj~C zd4%*B&mw#1kYZ>TuM=m2Gvqug!g=mGu2A`gWVc)yUIa|h(SG*Z@sMI++Y``n(qtj! zBne7i?L|S8FoTdJb>A(=O`gRM{p_J*xQ0Dc zy-D#`v$D=MMzdf#02CposPW+^l1o03No3ZM(`q&}=L+Z;Emlor87Y(S;Fdwur(;Jy zi7gf1Z#(<`8*Ewjgta8ldkcHTL;E`K(ofinN|vCy=9K+5iS1{O zp=KrwuP?h$r$CM(d&{GD5UrnnNqE!=oU4CH$s}c~5Xv9Y?IsJ4W;4V8tPq_;f>?rx zr>d=uAB=l)Jn5AsDU#s6La!yRdSk`gmi3qsu;oAE#yKJ z&9NOCY!rF1ObNg=T%uLy2o8NV&c&SjumqSXi~g>l^kb^ffTBfJ%m(HwC6`citk0!C z1uDh@i-NauuaRvqdy}^b<&HLicAaxh%-W?`yD*$j+hdq3l3O#ikfQOSPfXaIdwtad zR@70{P480uyVXyes|fn=-8+}8^;Py%6PH^+MJ+TER}VTFfm@E;e)D*dDoJ3e*yZj3 z@4MUL#2YZ2>X+V2d<6>P=g>pPrRdDDMKQJAu?5d}Ui{bTBpRez5IUCE!&E@A{# zXG|Bd4tI1oa$R0w6AUdq+H?WvvN%<{7DqatRjFnNyRICBDw~XhWh=2KD1sz=Awo=q z(C23tJ9(4X;-?p3$)MUFYqDrs)P6V@0J26*SHx2I*9b7;5vne+Byi{=)pk(mb;%<> zf;;H2`YE#L@hZ+l^?U>7T+jKvWZ?v8g!(6QKp_dPjk?hkD^b$kjZcwR3Ic6MxpX~- z4t8yl`ZOqP*il`P5n?xQ9=pc<$k}u^>~cLUtJoU7hEHs*Y&ro)e zYKi+Sb~1$bw*yUzSZS4go0)2jDw3Ka6{$%f&mF(bH6p~_PnnBk8S&$t=~u-NUV0~e z{{*A%*Mb}J>sX+Fkr}UF^nDCfWo#d<+c*xrxMBmd^HpD`CoU)UjK}n&S6l;|cj(+` z&!hI&PWxvyT@(h(wukAed+{b^GP&A;9G!eciQhR1J7ru!na@&tfSiMKbhmw$KP?5v zkB&#WLP^^NY=Us56mQwyALtHZhDA6R3ka!vgU?xM_K)~!8EH?i);M^JxZ2gK8|Dkb zB0m{}{ARe91ihtLpZYv6tnb-)`EmhT0Cq$5)FfIaTGv)=P3{pbg|;p7m?5OatDd15 zv%xp+3`bp;t?-HqrSgH+x+K&DP#!#4YZ=u@|IrZ9BRI_SL61bFp5bsBs#xOTQb4KU zbz3RU47u%d3-&VF7tGydxC)kkNbU>6G_rSbYN|Rr*;aN$EDCqVe>*&l&Sa{1o(znG zT&eM8IVJ2~M&kWI0ESC2y0CG-}g7p3>ms{&GOASzu2lq$Wq zAVHdfG?Ai!AS!|&Ae~SZDFRC9U5cT12=MJ=yYJ`sJnQ@8eb>9zSNt!KlYRD?z0b_- znYpexM2iD-kSG}^0%KuS_xQ_*+mI*<7GLiil|A;t88$FE=T$oA*W;brlaWD|IV74d zRxwBtp2vpn@gka#KP&26Z2CQd2EGa3bK0!O=V$1yDir=^_=AeOh%KJXu zvxi8WditsB^1vQ(A6P1{3bHe1IkKy$p;6y?5uASZ7d$#XMQ)Z;`li%y`^yrc`yZm$ zFPM9E><+u2!z9H>w6>A+GNIoVb_v$0;9ue?JrpgRQ*2VT)r{J|5oeM_RzwUd+uYs| zvO2INdP+y3TEdtMx@5=P15T4kHM{}z{qqkA5@v`E!HB6rB!d;x$YG_)cr;>?bBzaijDSHM0$BA35By7$&vZTDb zkw))p*f-a+a?%bEw3{F!gz9GgM_t*{vkF?3Je%dC^5WG&J zdUM1;c@%_V)OBis)inkA@6#`)7`51%Kf`)d-eQ|x}bx^jeM_#V-kz2PPOG=hSn ztHFC$$n{#Xzi<#f<5KrR>4e`udVxrOtwpTK|5c(&RcOd|-7(6jjQC8VX)zjN$&dIf zn&um>f1buXg)@EM^<|t1had9ja7IA6R%_I9z^b@m&;Sr=-%B8FhBZSA#kEV zv6$7JabGj^8Kq$t{=C>en^&~AS~9-sE1Zh{{yP3R`iAJawVMX4Q%qA5QMWO(+z1SN zt}qAOYFSx%tll5hP^{6SINzO#;g~;8e}Stng%AmWQ3{i_gN$0-QHogTEEehtTQ4%u<~y`?jbQN2G9HIp z5gAE0+*f^Pq*;ZE%nO-JC>$=*OxBHGq~F2n@CI8pan%x){Yyd6)wH$xxxef;Fd!f8OfJ;eQ%^YzYgk|BnT6uQD! z7zaAKZw=`Sm7wPvY$L#Q+;HjDI;geNVuy7tTKAAo!pB6LBh!MgN=vp9Oz~F6op_gO z^z}j=+oZKgM;DO=(Mcn;PmzPk(1$C?6B{F&rDci+NA#HC>#m9-2uw{qpmAyW${wA4 zs)j2_3BTNMu>|<#xV#8Ojmq{ZmyxjOSpRjX$*0|u=n@O_lH#_a@%J$fy>CoAypDQ! zV{chT#uF8Y8Ra?io67|xsZ_%ZW4*VEw76=E?@Vz9R$oS<*yB7+tNOhAKvA&4O2M=* z-#9!{ceYq;sqZx#DwF>k8!;X5e63>Qwr(T4W8r8?@s@|4QN`?tXG?S#4tgI^{oq4K zSHyN_Mrj;nS>Fp5zzfrS^LMf(B=Z3L-w1a9P>_lPbb7o+wR3T49 z^GR~!onh9GBjkDyaE4zT@5b(tu#8hX0)NOIX+%k7WQJ@k^6^$rQAGigq>W^K*hc9F z&JuH?r8r|WKsI1$2B1fkOV$N~YY_~9SAx&7o1{@?Uv!5%3b=*?H|~f0NF1j3VW0nFKW?BNH%d8z{_8lRQR-Tu!sd~8CIC` zsBZBV=e;Z{0Oy%o*(U>UU3-z9ztTGZ9t$r&39Puy4mlO&u@dY@GHQudo%a$EeJ`D7 zHwT>zLMyO|y%8QUKFp=-q8JXNmeR$1?X+yCN)TYqQ8HILC{F~)#a1E~7T@xCQP|+g zhl=jjhMMVX&kj`^R+KzKeE2KZ--zpZCA%+B(kQ01&fa9~P9n^(s1m$OFVI zP#*|jy9m~a16QS78x$YfNF7REOs52;Mw357)+BfmpYhA`Ro|3z#1@Ys< zP043Ixs269No205oG!|#{hhdBnz8;B-$058FV(Ci(*yaRLXS~+eVF}XJM7u7RiM|f}tIZ!mo&;RWA@-4qOgp zyCL}%fXm7FXD(wFFrB$&8}iMDh|A6Qm%e^sb-O@CQ6yKw23EX9_ibI!`gEE34FUh{ z68ZcnRad+HfM9e_3Qyyb!MQN?_3{FAFqcBp6#fv^%x7P~>X{<_jl{A>(kl2{?|mg${1 z*Pkkqg_DQ0N0Eo@f9TkWiWlQ;zahoB^EHj@if${?=O9nKx!UANYlv*~*Fqc2cv6uk zE*bnZMzd{Dah$D)Vjoo)&Q*oyE2Z6(@Q?KHkoBjcm#|>juuf{&ngnQw`S?N@M=kt8 znxTQ*94JlP30bZrysgE)yHUmFH99rJ)=J?@_sOJ78Njzjscgk-VgtXuonUR6;2{hL z?lcINH$?Rit&XoPlDinn04@isCs~*IKlnb_l2}V{DPf9~*1AZA;UG+|YGaZ(wCBW)64~7HEi$_LscCYi7wBj?e`0D6u8J{sW!(6-yKnNiBNy-@MIQ*W( zJ?T!$iK=Ah>?n}1k~86ENc@S*v?^P$u!peOV+O^(}j1yR5>}^WFIY9v| z9}XmR+pg5dE~G96TJGI#gh}57b}*Z+6Y0Q2n8S*vzAs;ZoK!*5MW{e)AVI&Mk;} z?0}R6%lYiAuZ*L&h&cupur6q?q7ztm#L)}bX2DO^*V9}YtE$gcMfnz^gG$6}PEw=> zxwtnMP*F@fOf1JAW>W?ahv{L;Ijyb7v5FDvn|G3|J^gokGW0`kHR@X)S}<5zb0F$! zJ}x0?J!GSb_CLP0;dBZBg{%!UnaWMqPi~|HXdUdUn#XvaSZV~gV!jD4v0bw$>%y1J zF=7s9lBM)uZb1~1fS?1Cl|)rCq+zVc9Q7ajXSa3Vt0shb|dagvGG)Z*TFGwG!$ zzHXbDm)WFWtP6DwMNL|`j~zR%`%&yjy=w2JYls9P1gHKg z2E~>}X(ZaEJtps-uFbaEnV9|h@{NRfnsxzWM8LnY2jc)Y4aHZbzdro zQUYn1Hr=|OZ+E#FD&Z4yB;kd8R9O<`XReg&V~>*&aSY@NYn@ibivm@}L91TaNvF2ODS;?%u;y_@OH#rHI zKO$6FX>74*Y$1AXC7yx8GJNgTT7*!PO2l10iut4aI;c%StNP97>F1r^-*eFQT4&Hc zCM~tn)zTQCSrTiG!I%Ru{X98_XE#Top|>+xCEM(Q89f<_T-g=`?U?~v>C#2yx*zYs zkDQ7$R5(^hj^#j?iaB*!DO)A=Z1#AR(NH{8YR+P$X?FZ}(%!uJrL7HEIIz*%zv+@J7DW^>Soy_z$O7#+i4*TE7kBANk2k{9^VT1LLcDF3)Wo8j_?8YP z>`5$-3!ZV@lA*~ipv?iYi`?@BpMhxuG}8cd!1o!r8_^!!}uc4TKi z#(z1BG@4?Mdx~43>7?mY+FHfWMBgS`z`b>t=A1P)Pw7)76-yo6! zFxIPutc8awZJDg`9E}a`-Qni;WD|U*`?`h?&KhY*FeVwW*^M(w(^FZbLOOsq9W=K1 zu*gZiZd%A!c$0oqboMS2Ew^H}CzX__U`=&WfyFAQ4~1SM5o~*p0vsUTi`*K++*yf< z)he$}QHykCUT*LCHDyc$$!8^}FTN*0WLroD4`3q@?ErMjB#-ac)d&~Tmp9nc+v~g{ zV2wrlTj3rRN#V>3G)LKSMg!MyI4D>@C-F9T|HH&39JXdNQQw#T=I( z6ye9%c84n7*K3fnr@;B*7zw4uAtJza-|d-`^kdXYE@_}v`-2kaL7^+=xus1^D1{t< z$VcQRZ6*IMLCFp(n7qje%g_MMcU#DA%oV;JJ{(B@iFJa$2|QwTB2`7^j2YaDpm4!L zfuxJrx{7PWB|FZO++TWLVW}NX;X*zR-*?70Rz{3^^Nl5Wng_&$9_NAauPupdJQ;K- zV=c?sB3ZJXXqnzq^@}}V?MuF9QBSkt932Q#FmaOvp<-uXbwR@k+NGO~sa0(*Q#;R2 zowv(X;(d0WP;aF}SB89<4QKiC-w+|7>a>{0MGNnvgJKZmG|!G1U3*)RM3gR(G^aam zwRfIbA4U1fLnWxuzexRDCEY_ZM9W9RsN-@}WCxt0R=z$)&+d7Jdu>N23w1^dUD;8c)Zf;%x45ohtvB;9*nAZgteQ-g{`Oo*RotfY_1Jpb8X6*( zhe}=+?C+TAT%2+Zx;1Smj%qSmkR2(e6DFemwDtJvIBQG?>!7k#)k7jL4vqTS0w01$ ze3fL&xV5Sk!O!(Ac{iHGJ9S<$PsmLud`!Qa)AK2as4rzZtEau-f_FI8$KtbTjVper z^X;R(eCg!#PN)cu$fx?%m{ziuVuLge!F0um=2 zQ&Y?b5Cg52tPAuL>;tRtcI%`f0UpiyyN&cO19oEkBVYvQDHjl$WEM6(^gTwaESqdE zV|LO#vl*_X?Ct2wvq;N2C^-a<9Auj|mEI6%$D9?^*d{w-MKcxa|4i|$*QX$s@gB#w zuKW&SG2dTh^S-eh?W*a1&Lzw_#3G{KaUHd#|x`#xOm40Cd0gJW*ZL^<0v zx=MxakA!TS3Z>%iv9)vN6WF<+nMX6J_$k(a_u~m=JQBQg3$DOm_Y@5m@fD?|I6sd*V}XkPJipwKEEvMr9pkUM7ad4H)-7CIF45dn zs9m&U{q*RjgthCCI!^BuE(<}1EYkj2Cb8<_txiO;oEaE4+0sjx4Ozys=}((e3)LgShif`eMF8MQ#(Z0 zsE&-xNd@c!q;M7&+@ED$F2?)Vh)GrW?BKHSBx_h!!Ntz3Sk1t&17+*u>ocbz% zWF}1M_XRN>olYz1Y4Y!SM3?AxZ&oRLjf&A@gtb=Ec>?ec%`g+yt-j>SsQP4*rL)~3 zTno4{-NRVV^CJ)S3&vN00(kDg5nFPqL}+LGgYp8*H571@AeY zbu$pXqWIy1pZm68hpl`>`h1#lbD5T}XvMnD;T!dKExtUi@t6x@uwxJSct*yI zke^L%r<&1yJ8~w%=C*W;Ye*oXQ|C@v)Ql{d69%`bJDpM8KR;q`$1>$J6>gAjGjDb$ zoromKx7D|-Lcz9tgfCc|r>?SzHJtaITe~ql)4wrMp!>WhtSl{!X$3gE9&-Qj(fv0@!K@ZP6cY}mFB%%*J+y!t>cxu4cFtr!3{c^(OKHj3|;@17Q z{agyj*?R!-XNwFN5d!(7c$KI$x`aLa_U*EjX>is%a%)Q$N6i~%H(5E%FxMzu*U@-y z>6ZFfhU9osrx_+j0Zx1{*e_;T77sdxI@+;2Vb5V%VjBFB_ zn}mwgZBX;T?2ezLWjl78FU{@3 zjX}f#buDA(lT8I_xov~2QgFf;R6B?O#RB&y^ZyH}!F=0e>wBF5K2^eHSk?<#Y%VeG zqI(_3eZkmZVsaq0+?x_@49;91eli_^J_P?Km=5w!k9UEf&y!)_rRshFUU~umBtAUT z9e}C<5Vt_N-5<#suo|nfwgkcXD0K+z<}vKvm*YAIHAvyjl#T_t@MI_#e*NgbI13CD zKz!N*;Jae%U%&hM5vo7_c0}eUa@J4>h~&13J?~Wl>RAZ#r4+m|Uk#>$-&vD55PI9n zX{VOmw>}Rx(gPI}NO_$3>dXf%mbQ?|S^^&!dln#YbTnOsO1jiOn04fS_`y7p4*_eD z^Z$w~UgAMqEwoU5+h#|+lMA^c;IX14z}}p^F83VBnjb>`Jku&gT}*J!<6%00@=}?1 z!R$_p5YQM(K+`m`;PqrDxJ(jGbncZ5M5x675d3Ch?BBZ${8$$C3vH}R0EUk@y#Ecr zr<0?>rTs8+FVpd^ps^}&!(=2Flea*t-S7u=nhZPE5(2I%;wPfv08{(PR1xwou+?9t zioY}TAXPUazY9POK% zL#~|(v~M9I0qQ)qqr4iRib=%@sMn2VZSxI?QD9`+25>^WK6MJi8#U zZ@67$^25aa$ZJA;2ar*9+W)vPp1OjimN5EB0bkBZ29+Y7H zJ&_+D+d09tCesd%KL~fgSB$P;4$W0Tx@H{UdFetvtAHt!{A6(ehWRIp!+&`oFb<$` z0*ADhRqd~TSRHT+Ylw#;nc=|)0f+{~o7H5M2BC^2j&9jr4Qj#31sdPbXTZ=l~su zAqOKl;9E*Q0xg+<#_!a`e-SS9yT@n1wZ$I?hkg)VfJYYn2JIv7qbXHt(AFc&3I=zi z`N;;A_uFy$J&E7zrBVzziALV3*M6^GGeo&0Cc++X3y=_hil^7a~ccjXQ>|6sB`w}QhIg)j?vChB)*Uenz{Zon( zks>u-B4ymlK+R}%+H}g4cufVQFPLR4B@XKBgYpd*um26{h8@2PiiU1Lfa%heW)_?8 z1(l8l;{g*i8CslCQ1kkJ0Pn^2DEh?JK^5>g@K-DR3G3Zf4#lJ1%k{*??_FnZfu_SA zrMvSlx7-XyXw-PpohGJs%m9{pHA&#G0FbS4f_?qJ`kK+M;t zGpKJvX&VR;5>Zi@0-5zgU=sUisjsb&j!lHy9IibLKlu@Ygxdp{eY?kq_l!LNw?E#0 zPN9?@useqXZQ4E=nYw?WP})5-88oacUhO(iJK=xs+L>t>&mv{WU^Ge%w&u+Ii!vOVJfgODnjUeU0IWJ1Z$$ zY?f1R-W||yurIdlP0I|-+$ng^TM5AaHn>k;<|%9U%Pmpr**hY5`j2MIA)8B80o@lo zYe~cB%|f1={|}}pALxtx`&BEybrXBAG*C|Of+q}UG&8k8!%FWp@fc1YTv5w&kJN4d z%^BrG*=vsPr{BK&dQ|`dus-iUU$$7a)`0`N#&mOgGB(##(`@}2!%c`!Vf#~L5CjXo z8MxiR_SU`6ROXs%yHsw&*a=O#VNmg@tx-4`BY!JW@U2!wM+`rRqT82t$bG*Nh@WID z-dn5`VYMsiy`XdR<*T>nN;2q3f<>GzUBSUWm|jfJ8uE^WXSlv&|Pc z6>NI3_1M+}ebk9Iky^ixZMR>(mQH)lB;&a=2@zjlzl2rA%{UjL82V27E!Up{g;^H{ zmR%tznpeN~%?5IrsB8E~D#ipL?!T1*_J)vRtwKW;jnQ?NCj03G;|`-MmSIdA4{hMe z*JsM#I`=l^?e)HIqQ54%aGKWL8_-YdZJXIt*Xs{zskxYg4W!sYCG-?#=;*@J9@ zd{EA_;0z18r_CyZ{=LO4j^!K+9l^FoIgV7ivvK45F!%(_4t|ooMir*P45v|8`y|m1jp+`gzEm0hfsS-S^gMiSXrxSfIk5VDLS0epPqdF@1 zn%_!Od>8B?t6FAphnzq}5L^Ia@OZHZ2r#Dmk5MW-m}hoRlDlU<&o-x8SF%t#$ZN?F z@)UyolF+QQR1#?_4!U+K7AF{8J+-gc8rVP@E?hnqXTQQj-${WDTvC0Ok>^WGp?AsU zG1GrrJ3#ZH1>7T;B}>8|1^Dau?Cnntg9?PK4uNuQhtsjEs4P>*Zx!vqm3~9N+^n(nbY|5_~4$%!T?2 zXxoNjkE|Sh_7uXRkIh59RhECkNmOf3A#7QBkp-=Klxd(Oi`?*P?Y2nB~}V8x8KSY%l(kb@}lx~ zHK?OAMLFX%NN;({F+B<9 z@x(>YM9CGWwYuOGC{JP^W-xrh4;S5)mCmkpOAs62b#( zsZB<;Qh4nHRODXb`r)Pd{yaCK8gd07^2JHeBfDSAI*^HE54(W!+~MxF?8{Qz#B%Le zhtq+|-RG;ICmcH~E4>RLrN?Qx2{cz6H z^fXhwm%h@*<&`-A#k9l~RT__QP(Pz!9~lHS&OK`eNZ5TS1&ISD(SKym5LC32hdDL3 zlZM|KTc-RivwvIaE-0*|nAM&2XZ!MJ0C#kiiA8+_lISoPx8E)|EzzNBrP;2J#e?_rav{0T=5=lm6*c z`?uP1MsrX>-~`Nr?)ESTdN}e&E$?RxX!ZOc<}4`2YT@J1|0q9!Txq1~5z~R(rk)j@ zo$tdnptu0SvGzm00F@_#lFpKSnO%7iNvna!C8&Vbiefk^0I(ukVZpG?3t-qhh_i&p zf%Iw)_m^^QSV8B3AZ(Msq74K4Je{NTc$f5`eLO}h{cuaU+jDm=H`nwNRyArX67y8y z=?cEU*;b*g=@Jw(`;QIye|K(#N~e88MSM-Dzm}+fERbcm?yNdMG7CtV zCfBNlASb0V=>f0D$~dw>HB5bL*wb82$sRaCer5{hpf_}J_(>oBNi>(o)%WA~Sl%uH zUa$Uw%EiY;FAcw+*F?Kw&)ZdRd~JiUrzN51Vc|$e2QWqk6*0i0DIwa{0icKHn){c_ zHrJOnH9?gShP{yyEn=maulyl`d)kaQ5AN^P#=v2Fl#sm^um>&;jV_D8!D0Zw^E!!zo@DVo2v^Rbws+=pZ$o zYz_GaY7FXC_+}*+b8k0Kab+9vI1F;c7 zrmJLOMa^@_MRPNh4bRT%yIv2d0~Sbo^^ofTijkew37@S3OkeHTenL;+F4%ygdvnlf zHZGF`rOx3u|L8z@f6ky^6TF{40>EZl6@51$7X%bIc?eBxXIBYaMXmz^2qZ};I+E4& zD(f@em@5}R{cm$^B^8+3#s|ZC=Rt3);n^s*^!V7CH%kcL@>Wif7Uoj$Akku`TSMNrgI{Ia|AGk$w8(W>}^ua7da3RPoJ3{ zxbvpH17Pq=Dk(4=Lx3e}BPy#4&IWwSlM;)nSZBb;%pI%-O3HzYreDeSZbbbE+a9*% zx##(QK<*@g=adHW1*MasdqXoyGXAtI1UcYg5B6#g<<*}Y9fX4TM8`Dfp#D$YD|$d@ zWv;}UKpWKtrh5J5Wb)fo$BI*|tgZSg<)FqipcW9iy#@U$I7zTr);o~TrdA2E0)AH| zQME1%6dZNFU}oC4M;#$@r0)f_cIQ+!bW7X6rW$b0O9*07O{0?&4=3Ch$T5PxOdL`TBc5C9=~iY!LB z^4sG(-4Cr0U&8p0wsf#3nFn|e%%PS*T?^XY46H*ZT)c?pGi3VR{IGWbUEKOk??r=~ zd{3O!N+<3M++`w!L05jo=no$+cCcD1TgEZ??G|R}pmH&Ok>N(Cu3moaf`gMzWr7OR3c)kNMlD2c2{?z_G2SEe)d^8Bt{;KmJ`qP1=qU8`(-4>S)sT%VSHbb` z)__ao40_n5{A}8keCH5wmr~=vDy*;f7RdFo5vl{Wy^az?r|}nA6?rm{f^PP_ejcEr zX?j&ruDv%8s5D_GF5WnXH%@fskHg4MNAP{SX>8{0u=%NXORDdR|9o2U2inn_n6^g0 z(}>5(&m_72Nc$fZ90d{8QXP{4DZpRrPyZ zg|j03*FTf=F9ja%af@3`ustMb33x~pGch5fp$YR;I}$XDW)0!IzR025NQzuk9qIx= zaC>z|+(|V&I&xVD34GWa=O{z&IfH1$Qk+V}x=<~C_0&G>(Q@aF!w&hSC!p>uz^;sA zf+fcpW=S)V^YTrN+;kY8Juc{|U&uQ^S!TD}e^7l32YSI zj!08~u4v$|+PmED6d<8K6l!tg5U1kSrAnN`>WMtP0Me7GBXd(z@do+)ayW#R;iSv{~E3+vPeNV)lL9TC00ZGAI1@}abcxtfaV)m6^e z@;(ES5-#VNG|%T;%cY|Mdr>x|926M}qp$$LC6=`wyEG1eQ)JB`f5L@rfm@S|)8fQK zxO=*2d9(7o;0E1!cJ~k)gbRn2LX1pq?3iPq3%Egouwc=@|?ACLT>3O zp@YnjvpV%YRBW%!&e#{ZJ5{Yx@nW>$Yaa;tbSkXjdOzQn;Vzm2tI>CHGu`j5na2m7 z+GJ|8_Ec&shqU&T;?2fhJK(h|68QW!K>xhJ;I-`p)fcngT6mDk{k07*L8%mXT(q|v z)TAL=cw@mDaEQFylBzJLGAcZAQKltE2T|Nep(#hw8&*ojTBA zDb3@!RT;a-F|`Mh9S}@zXW~l3&KiU6m&p!H^H;p`MsH7lip{>;xl8YKOZOb*^~4@W zc>>MxHEz@Ck1qLFi11fahVG<4_LY$YdU*hc^^YbC0Y{zvSXyM=T@lmk^TxGu*X(i< zD!f6jist)uO$_EwV)&6BjMIIf-%Ctg=OgxwuICuXaT)PVFHfvL_$wMSoT!q zTEY8%CEq0__o#{0P$CJVty2i*mlL95zoqkA(}CIbqQR7z=@Pa7--_a2E11a%G7+ZH;5p1Ya@Gl$;T-&0J=WvR*KLlR-!Ec6k2Kq)E>F56+RA{mmczE8oSK1%_zLz@>NNg4G z*i`Ish(=(Z2CTj@hc=XI=IL?x%IIdQd@-;H!t%>O{%=7HM=b8rpaE!qAtXm5{3lBA z=RPXGTUUtu`EC`s71MUx{uiKy?v0Z&2PwN+!hBi^z*9QhpI~g7v{1a|2)WwbPTegX zwV>=lfSLyM`S{ni`SDRj4~oHRtETAw{_3$RcyZ>WMJ``}NO7hDt{S#~CfwE@=mqGzM4@eglXz4xx1oKqEr^BG4 znHwIT&m`Sy6RgxNT~ewv*2pZk{ohEM{LEuQL$7^POfYq>=jpeK6iH|GsvCKi3&3@o zXKac7EY+XAMx6(}l=tgc{@I(hkUor1QNXRJX`oZS_;LCh}!>L z9%#H^Gbpec78mg6E_G<|A7(1stQU{KP0p>bya#!`vtU#@W5)mU+0E@k+%RzvYm>k7 zvMO~PoIr#4=;@%@>Mb+tIt#>*SOKy$zLqtf(Nn%?G7;$*5$$UqRYXphdh7lixJF~i zlz?L(FhF4QF13$VMH%11;QlMF>dLapV$h;G*HnBol?rj&IPi|pQ3663oZZm%X#La2 zo)6|PbFw2Zkz}dC;I^Qduc3PyKk`yqP8_&ICFsb{Yr%(L4-y!~yO*`^5`X?L?>)G- zU0!SBG!-0?k2=pm2$NJ%an7sIr$yv-rq z2{0JNWlSENfRLFT%)^wAl;X0@3+^9N{O9+XrUW7C3-eB|d4B%ywlKJMjp9P}IWX*L z%S*7M1mtiqj{=(G;rYdvsQ*m+=Z7v~@T?viWnZa(&Pj>^T(Us5pxQrR@k z4*79iCKZ@n^z7N_e+%-*)ZB#Fk-bt+34Y7?3s{?fq?TC>rfb9E`}^BJH+7(fBW_=G zx+CyYDu%v5Dg&MmNqTkpFmk_O5qeygn4^?`d4(1H%8aLxMZNEYlot z9RIA=&xa||1`nfG{rdIK`>QM*Ck($mdgip&kFS|Iz$2g?dtv{v(m^VHU_4Wr(?16R z`!o&Q-97Of=g;xwfb88%i^BigBzeKZNN<#u{#xR9&=UJIykP&if+#QuSH*d*|0WYt zXgs~VBfqAh;tuZq&lZ>!1hedKKKb7!`FG*|F5KTY?(ZA-Q1vm47`2YUm))m$Q31<6P(CdU#yl+ zGdE71lM7LoaM`{kO<-dh;9GI{IoGDRIv+#+(|`yK7IEd)uWPj z+z1G7fxO(~hz6OTi83&8a#~>gEOKxE%42p_f}~XSpyzF+E%3qBXH^+5{?^&HZSIb zzzv9WXEZ?imKT~(_}>Zr*bRRr^#7babeSle{$p6pRr(>WHz#t!?xuY={$BC*rDnxt zDH1X*@FJ+#>;K9w!{DwFL?P^rNLtn@G9VyzG5B`hU000#(lJ|P|4h!XRg^p zGw+-A#Atfc8yW+Fxf?xs4;y-p#VV$CRIkRY<9hAhNnScdpa(R`?W?i3DSyY2>t2Dk zwD|sZ`cJLKUU&q&cl7KvI-N3Lx;tkV)CgfeN-8QSs6qL~TfrCkV_i-)tLY`HcdhRh zy?MU&=Dmdfcne=rQr`6UftLjj4%TS)avwG@=!;b2&+Sea=xZ~4^AVYKI82k)VmlmM z=qY@v-d)^T{ea@|4NW(>r$Tw=%jsRht5DkhzT;P*fqw4umtZ1ShxeHcex6}_^?;&q zRD7ls3NDmn%>M{93p+ z4qudIKUKd+yRr9Sg&`;F;O-8=o9{J)Z<3UDV$!-FaGankmhqqW4LoN&?B{g;&6OJ5 zn7_2hEsu(Yk(Tb*SjE8LKI7vsNvQHbyZVLDAB9>B1o}Ab{?_mG{|RW>kJeY>{OG_J zZ-#`=2B}22$TjmR@(hfKZyv zW=i70eyc>!T94WFF?Uuad)wWat;IxobGI86d-Z(XO9r*46*qeyJu|x#WiIT0;P0F5 zA|RMj&{hoJ-!F?b8QZvglt2$E%(&om`^2C1#(~0+Te%a8zr*vwT)t*e$6A&);VlG-Pl-$^vn=2qb*?BCU@_CZEcg`D!$fzsG*JZm{NhQks z=uhU#hnUEwx*fj6OosVukyaG`6%Ax+o|i%Vd^(*>c6KM%lxpk-@}-MO7c(TGQ)^%xsBN?RH4sDmrhMC1rftY%)2orIl1t1M$ZP7iFqJaEcDxZsa>wAhQkg@4No#A^#e!So?pvX; zGt>GfeTG*gOnZURyaW{kvA+0e!7d*Ump1jiewBBWWle~0c&#gb?px)_)51joHGFR# zEDiTOuYKg$y48}js_6TDgYP*H1B=NJADi#(+j2|!^7r?yJ`uIVbvNw?JjHLE*fI0m zXy3}o%~ddeL>JifO1{$Z{aNO?405Z=nepE&f)U)Mft4($!gb5y^E;GMc=6x>)+!=1n$S=eC?>heN7QA9=Z^j6YVOi14i@G zuh<&T?RMDlo{YfjuH05&tSUWIJ=vc>n{kC&XldYfD2ZJJj;60xx$~sEcWHz;r#+p7 z)aw!)^%*8ggUeVv^1JF?vK44s-~BWt#g{SGJ7)pxCT zDvW@>dN)sz@aMqBNC*^_s>)^VUt8QF6I^jD!PQKJza1#@>1lf9?#Dfk#lhf z6%!@mV6Gu%jxqEbjY3|G^5|}R%3QiaLx+<0ivr4}TKD^1&Zx^ZE6O%g7E4q7`Pi=? z#)sbo+K<)%i=qEsVPCBCqlDz>+TpEA_wHbMr{u)8KK`XZD&~Og2%DbIJIOsFHSYy^ zU&~tVthZm+f5LF>`b>zQh;UhTnF-%Q?d0y6E4Nn8Xl93nQwXUUTwJY|A&{81SEf37 zuwGyJJVJI^l2DSU<^B`F&w5P0ez>Vh{cID3RTn)zroI8NtM_j|;D_;8*Sj+`AvN7A>2+5s$yV z=IJyn{aVp7tj5p?7b)6hbNIcnX6EI2S&NMX%B8gCnJ&X}@;1j6gw%dhQct{Wvb$b- z#JqBhfn)`bpbp-T4L)Wp6t^P4Op+GN5&Nd4FJ})Fg^>**e?%r4;y+nmz zjytBdH0as3o?b1JDx`t3IdE?NGS?!Dq&;>~d4Fi|esE>~$tR;#lLsx`PY*Z4Yf}7c z9;qwHJ5~6&czr^ajOGS(d(QLTc@tN&cDT8;cfd8etzIEZd88oDMtpaOqjE;|-SpmO z`(h+xmv0YW-~}>t^TD>ze%8Up7_9`S`#_BHOvUsB2eKR`SknY%R?g;+!31`F zi@qMqUv?;db#ymeX2#-U`RZL(bCI^E2@QeEGgh~1l>=u&&uAejVk{OI0{!le3d&OL z`ma%Zr<>MboW3}Ec(Fp5IH7dd_6wq8_$6%n(;_DoWKvqdWwf!5dAsVA{@{izYH!79zbLtX`A%S&!GL6E!9_=j#Y*pv zG^Vm)w`rlRoWR|YjNK5aX_quJF62h6Z02=Tq^t8x#@)Tes->0nnZxa|@A?sAm+g04 z_!m|^m0Q>F+3Sg>GUwO=zk8fnzTI47>oD&tjAmbXI=by&!9|>Jz1KXtlvH}v({E*i zWuLC|`gC#As}@%G0Xnd?O|M*EbCn${8T@ums&T9NyLFUA8nfxBB0gLu2ZP*bRlPn>)LQ^w&vPfZZY-F>?(xGrwg>9#(bt; z*1H`}ox%Y<)%V8?@rj4S-ka&ZYjGS!h*qDM1z4FYUT4jur(P;6ONEEs%XK73a|?!>(-?m0P;TUoCTl@{@Cx)kb7(s!Ks6M0ge*jQiji8#}9+k5WO zm3;2f6KlF;hv_!Ay?o}^=3WMFJulhtp}D`+Fdo=hBTdz`hEjQdu})}doZVQ^<^Z_Ud4c@_3#Yw@a|RJf;O)mr_!6Weg^ z|Ha;WMm5#7?}JiAqzQr)2}Ka;C8G2y0wN-)h%^B~hzLlNP6&t^q>BhaN&uy(NbkJ` zkOYFDQl0#m5EQtga_;!!z+C__z{Y?(cB3yfB^fqpv%?vl`rI8{aXh$>=#6MvvVr=pBvrt*I zT!YKo$;`7rLIrS#gw5^Ew`Z^(_Y>oPhx%TX$Ii@z<`L(^t2bsS>_@nM>hmbO4DzY5 zNK?1e9L$@oh&DD>Jt@_)G$wG$3$4fR??Yt=7oTa!{@QWbUEFhjl0cw^MQy@Og3jJp>mZl_f#Ci$7QNaP7R`0nQ^0aKf>1Ox*i3(aPUKMV1_ zgn#F4=4pCK5?b2Xd?wU{A&g?(@|#!L@ZO_>{l49u1iRU2j=5~(cTOXSeH{xU&w`CS z_5*C_q;^Zr)f~Qpa;A!l(aD z2AlrKKB3nBiUliwsl$4pp_u$>3L{ZT)e8sfex7=qIV$|c%oG;HwW2#ca37OcAk$3K zJHE9)>3s}bKVsPQMh;pjy33VBZ#fnueN{m#@j1N?Rze5hB{W9`hgFsFkA4S_pv`c* zMGYU`c8~eIOf{|*E7f)PtNlIk<~E(-)+q+eZBZft-I~R@7C29{(`TG%JMOR)kq}$! z-7Ji`EmSbsb~6!&(iFBkL)iQppShk}EBY(>gbu$W3&k`2DKZU`Zqp~}Hiv(8+ceBY zXjxYkhjlv?Mw)6*F?MOMTD15pVo zSf4g4YO<>Vy+ISh)#&c8Z?LxDlni{;u)i=S@MDv~+5&R_PyP z#El|8s~@UzEC=hss!555{+*ll6&Y;0XnfI$FKC!usCbG-z+Sv)_qQyI1lCU7ro-9a zb$SzV=+$cG+$#SKM0KvJ8_IuI7J-YOK=pQDzhYP~WKBlbuMQkbb>WV$n(A`WXxO%&nYM5nbi(WcPt!v)m(dg_pe>$S7VFjE4;dF0$F%3KqF#Da2ErX+Du zaxMsRZJq~GxtfdY)~?%W9Y+y96V*lzmqztS7C_{8Z8uf-&`E;bxdp$=$bv3c^+CM5XAt-ZlZ~v5A z_Uw0BXOXP~F;$9K>6xJe5c@<+5@l*^^7Oh-Yzhuo@G z&8n+B$xx$=%u-2Ge*Xo!FdFQ`nnnE(!>XHc)7*8gR_f=ywW1c2_z{_&^=6G7pL4r2 zrGDHx{H)w@D$x`sC#Ev+)_!t+h^2d3Sq{!Mb%aA=4Ls{<{mlh7%T`N8_<6~8|6n5poCf8)fL>&*%JQ-^D>i<}OhnB^uQngWn4*s$st z*jd820=5sTDXw=%3RZl2Sm&ba`m2rC785@9bR)RoH=)c8oE>t-OD{jO)?Kz_U3=}k zf9{vk&RFsF6unt@w^u#rP)kK{hUH21);{aGXgSFMED^rv zXhIj>GCH=s?x>M9oxp5uCPZ8bcJ5cGafs3jTX~-hmGaW9H6o50R4kgf8XPW!@eGMB z750A^AKc>!8|`|9=@!)uw>WOKHPql*PSiKz8y@d!f2?Sb zDM)kw_@rp~@=w}L&59A^WvIyRzWyUUK|v&E&9Kv_=DdNX%dD3r+&R=%+}cm+)G!xe z&Jq`ARpil<(R6B9TwL1j+xYf=l-%;OjlG^+|0S=(JH8_UW*NcjR;F}T9`9U*>}Uvy z0Yzkx*!askvq6KK_w(+!%#JUtNZ9SY%D816y>zhWlrUV=YlrcH-f0LzAKDJUv6s8k zpc4j%PDJBpizj@(zG24K)XLdiC8Ql=7NXR7)Jw#mnc?0@g=lPqGR z$_Ne{iCMf{P;<-WQAssqPIkR8$<;Y(DTZ_Tro&9vljqNE_8!#6bGx_v!1Ssr?5A2= z`mYmu@ELW=`)u%rG;pr$S|_b;jf89X7&Y?iFDp%S!PdmC_&upGy7lCFf^|!papcpV zPK$-QA0z{;@U^_F(s(^x+2Nh89ORjiy5Hm2IbEL%=!$-lYT;K!_{*I@u1(xzvWVn} zPMMWz!b4#eiSd3lewm|PcPkLJuVJpfgjJXY8zj{B)+yrHE1!=A9PnOYITk0#J2Y~* zcIJZpUW8ExwoT$bWm9`8`c3?+y>@-#Z5)kB?aW)X`(XFyyP4$m0s`W9O)>cQGOFY6T;!GvKq6Z6p-PHT&r$f>EOI8%Q^X!H(JscQ#YZFv28NGM16aGAEL!+yAckwo3x zFkc8u(V0!O>uh;Zp56%FNu=y1FhbgzX4YnxPQ3K&dswoO3E?yK8V|*&Su-W=I$3;L z8mMYduRhHy)dp7Q2N~@@HL6Rh!5a4_Z85b8!NLVNV@GG;XLl{MG7P9J)oc!63YdQ1 zf7twc+=6u*Uw5#W7rN)axK9}LyypDNr)j*L%`!lqYj;!igQBGwgHs(>uRhv;FH+N6 zj)CBqqCVTGWHzes`HS2j2U2A}&S@`B77qIQ^>`r=Hx6Ys(c) zui`seYCrZsqi0>R8WoTf{Jr4Pe0bKgwQPTp#rcbJhAPO(#oMOmkaafl z{oB(fVdES^rCBL(6-j~Zu#MXRxkXIbiNNdr<$D!=WPvC@f!x6-Q$wF4ts()WsIuPu zF`ndg4_ua1-+BT0BwXgV*3BVk>3s(}TWrTLkR$E7^K>_(EOVl>`T~4nVlPvC4X06{ zhouOeG57JSoZbCu|9SJm2QC>?@rbh(E(I&&`@`{(avAK81_LI3bk}k3%3}6bdpEsQ zP@T2oTP#J?i?8#3Au?0I1{)tPfS^WqW=g$nbDj607!zxqJEpGEc8D5#-0JIlH|g6+X*7u?W`KR^2y*wpI3J zGtDgy9e!TNk@4P8PuJ<+kew3fQ2=>iRPpWIWx-RkW{rylS(%x4BrD`K4ZMH6jl0R2BO{}XYEmC* zCrk8NF0r==eHu1itEzk=K(c%~cjGg&q|Wv$?`n*)I|*S|)9bRVCjVqv$NO}BIH{&HAs(MV`RzCTe#?+ySrOi*Ye!wv_cs!D}(+{-n19wjwh3TeMf z|FhqlVSan}RI0s9;ZwHl^V88z*PT@svxJ{XAC#dqUC>HlR&{0;#9x|n+q2TS*X!EU z-=Tg0b18IFVa;;*jZtUsaxrEx5D8x)umoio=Q@@IY$pDaUpa^$$*fv0eBfT>LBoK# zp|aAB%?+>``C?a@7jIj;-(j=jyh?dc^J;J@fwZ7EItvrH1X_Gfkxq)}GPejLsih!JZvB+NCy? z)T>L{3u~XKj-Q%l&`fM2!>lZBwmJ*ueod=yJK=H<$ zzC)T2JBXFHdg^@mW$(_~B1N6*LHpVgg#By`!&m9!i|BZ$iT}6P@Rimz4zJ0C1JKsfnxP5Flz$P_g!953RV7}y${;V%5)VcZL!vKk>?J&m7swfx=H(M z&vknQe6&8e`Mn?QVq2>p%JuPl-?xm|n6vgN+T-z2fKPSR^vEpe``>35xncy>Xe@x; zzk};Cv}gh!6$gV_sbO-#zlE4!CP*d7PW7nz@1e#|lk$Pv9n^A?x^LfZ?m4FTNZFBz zl`W(%B2-JAO*+>O&csoagLT==fp~p&$rS(4!kgu`1|?z+0_GpT{#azmIb3H zitx!3_L%*gt%~iHl%Lqrq9?04?)oXOgyUjrB#}%uq6Lh`{%q5#`EK8`-z)u_xmB~jl&wgZi4jZ z!k5Y`Ox~eV-*qMHk|;FrtV@+p$qu)ghDsF;OA?+4=oOuRy%58@E{{g4bBsCC;e@ZS z9?Nw%>w=|Njohi*516cKCM&-RUnwj2lCrXrIGKtECGfDRqTDv=ogok61g3T^&tpy5 zsp+y&`>k;f_mlV0!5Y28GB(roYp6AkRe#H07m-$R*zLaZX{=98r?wmF!tw~r!qd#6 zeFL-B#Rn<&V>pkgkuRln%b#7YZZ@e9PhOb=t1BV?8fz}E>PN>Zb4mI2N^jI;DMneb z@$yvZjoRU9pNj8to*0N#C@f5Hz3A&3yb_ulx4q+@SN*=6C%(1r+rlTGt#t8qcOB4! z7-5u>HuHL4?9LO1shKoVQ49H$RWi;cOhGwi&}+ZHcPinGr3gcqd)cs+^{sdTHp}y> ziV-?Yk0Uc~PxO6uQ=3ge+7)}W>It5~8@XC5A+H9?r@UxXOfmV1aAIwGq_5-<3unWt zC+3t~H~I3^Foo=*o!gL@;td>LpK0=JP1|q2;>~&+Jj=}eWSD>WVT9V-2sJJsuk(GP z^H-1DW`hi%E#JOtKSEtR6$YpRfz%$qE2*DG4Tvo*yg##*sNZ&fwjZFCJVWvLV0)YB zJEl}GD?@Mzx#w2$!{0fIE5FR4f&rJ?jgS4jnd?^jBOVgeNi>xX^AGTeYdod@O5x<6$PhMVi z{q>svW!8&zx>v4?Ve)M~b3W;2S=o1Rx$M2d6dFaM(pOBvreRsARl&$GlQSp$!e&Y| zwIq_pO~i89@aKMQHCXkU>`-1&b7{kq9T{}B9yT9`WrA23As_ ze42ATBMTU^yS_{>n0UK{NSUI_J0OC`7Jj%ug={bVF}IoeOI9MzV#zRz`se=q2i+cG zlDB=9MzwxmJuk^wxR^hFRA-=MEe95ge1#nJCjR$v`)F{1XhQf@0ZvfIl9@Qan$<9H zO{Y5+A|hEKzWm8SOU#h7sKM%#lEFBKi~}$8ya{{gx3RBm!>F4Tqb-rGed>Yrqof!) zH?R9Y52^40>4Xr<&+^<{~EEd@C@RHN5KcpWY9DN(ei!rRzr?wLEx-j@NBu^o)-l zyFA*+X0oq}FwzCBp|1j<-%4B+j}DtT97f@LgBjFZ#YhYJ@ZXf%X^4mb2xYoF!L?E% z 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%0AdMA?pV`1oM^XtHa@a2Gg0JY&k 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 Date: Fri, 8 Nov 2024 09:39:25 -0700 Subject: [PATCH 07/34] feat: create factorybot coupon model test and factory --- app/models/coupon.rb | 8 +++++++- app/models/invoice.rb | 1 + spec/factories/coupons.rb | 10 ++++++++++ spec/factories/invoices.rb | 5 +++++ spec/models/coupon_spec.rb | 18 ++++++++++++++++++ spec/models/merchant_coupon_spec.rb | 0 6 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 spec/factories/coupons.rb create mode 100644 spec/models/coupon_spec.rb delete mode 100644 spec/models/merchant_coupon_spec.rb diff --git a/app/models/coupon.rb b/app/models/coupon.rb index 892cc6b..0c9dd02 100644 --- a/app/models/coupon.rb +++ b/app/models/coupon.rb @@ -1,3 +1,9 @@ class Coupon < ApplicationRecord - + belongs_to :merchant + has_many :invoices + + validates :name, presence: true + validates :code, presence: true, uniqueness: true + validates :discount_value, presence: true + validates :discount_type, inclusion: { in: ["percent", "dollar"]} end \ No newline at end of file diff --git a/app/models/invoice.rb b/app/models/invoice.rb index e00462e..fb65f24 100644 --- a/app/models/invoice.rb +++ b/app/models/invoice.rb @@ -1,6 +1,7 @@ class Invoice < ApplicationRecord belongs_to :customer belongs_to :merchant + belongs_to :coupon, optional: true has_many :invoice_items, dependent: :destroy has_many :transactions, dependent: :destroy diff --git a/spec/factories/coupons.rb b/spec/factories/coupons.rb new file mode 100644 index 0000000..11008e9 --- /dev/null +++ b/spec/factories/coupons.rb @@ -0,0 +1,10 @@ +FactoryBot.define do + factory :coupon do + name { "Discount Code"} + code { Faker::Alphanumeric.unique.alphanumeric(number: 10).upcase } + discount_value { Faker::Number.between(from: 5.0, to: 50.0)} + discount_type { ["percent", "dollar"].sample} + active { true } + association :merchant + end +end \ No newline at end of file diff --git a/spec/factories/invoices.rb b/spec/factories/invoices.rb index fbb88a2..0932216 100644 --- a/spec/factories/invoices.rb +++ b/spec/factories/invoices.rb @@ -3,5 +3,10 @@ status { "shipped" } customer merchant + coupon {nil} + + trait :with_coupon do + association :coupon + end end end \ No newline at end of file diff --git a/spec/models/coupon_spec.rb b/spec/models/coupon_spec.rb new file mode 100644 index 0000000..0b1c913 --- /dev/null +++ b/spec/models/coupon_spec.rb @@ -0,0 +1,18 @@ +require 'rails_helper' + +RSpec.describe Coupon, type: :model do + describe 'associations' do + it {should belong_to(:merchant)} + it {should have_many(:invoices)} + end + + describe 'validations' do + subject { FactoryBot.create(:coupon)} + + it {should validate_presence_of(:name)} + it {should validate_presence_of(:code)} + it {should validate_uniqueness_of(:code)} + it {should validate_presence_of(:discount_value)} + it {should validate_inclusion_of(:discount_type).in_array(['percent', 'dollar'])} + end +end \ No newline at end of file diff --git a/spec/models/merchant_coupon_spec.rb b/spec/models/merchant_coupon_spec.rb deleted file mode 100644 index e69de29..0000000 From 33fed6de363de5f7f8a774522041361d691ce7f8 Mon Sep 17 00:00:00 2001 From: Terra Manning Date: Fri, 8 Nov 2024 09:57:41 -0700 Subject: [PATCH 08/34] feat: create invoice model test for associations with factory bot --- spec/models/invoice_spec.rb | 34 ++++++++++++++++++++++++++++++---- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/spec/models/invoice_spec.rb b/spec/models/invoice_spec.rb index 8b08005..394e5e4 100644 --- a/spec/models/invoice_spec.rb +++ b/spec/models/invoice_spec.rb @@ -1,7 +1,33 @@ require "rails_helper" -RSpec.describe Invoice do - it { should belong_to :merchant } - it { should belong_to :customer } - it { should validate_inclusion_of(:status).in_array(%w(shipped packaged returned)) } +RSpec.describe Invoice, type: :model do + describe 'associations' do + it { should belong_to :merchant } + it { should belong_to :customer } + it { should belong_to(:coupon).optional } + it { should have_many(:invoice_items).dependent(:destroy)} + it { should have_many(:transactions).dependent(:destroy)} + end + + describe 'validations' do + it { should validate_inclusion_of(:status).in_array(%w(shipped packaged returned)) } + end + + describe 'using FactoryBot' do + before(:each) do + @merchant = FactoryBot.create(:merchant) + @customer = FactoryBot.create(:customer) + @coupon= FactoryBot.create(:coupon, merchant: @merchant) + @invoice_with_coupon = FactoryBot.create(:invoice, merchant: @merchant, customer: @customer, coupon: @coupon) + @invoice_without_coupon = FactoryBot.create(:invoice, merchant: @merchant, customer: @customer, coupon: nil) + end + + it 'can be created without a coupon' do + expect(@invoice_without_coupon.coupon).to be(nil) + end + + it 'can be created with a coupon' do + expect(@invoice_with_coupon.coupon).to be(@coupon) + end + end end \ No newline at end of file From fc5c7ea4d674afdfc391dfd4ff447c131c724aff Mon Sep 17 00:00:00 2001 From: Terra Manning Date: Fri, 8 Nov 2024 10:34:07 -0700 Subject: [PATCH 09/34] feat: create request spec test for coupons and add to routes --- config/routes.rb | 1 + .../merchant/merchant_coupons_request_spec.rb | 36 +++++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/config/routes.rb b/config/routes.rb index b1a302b..97f5975 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -25,6 +25,7 @@ resources :customers, only: :index, controller: "merchants/customers" resources :invoices, only: :index, controller: "merchants/invoices" end + resources :coupons, only: [:show] end end end diff --git a/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb b/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb index e69de29..de81e47 100644 --- a/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb +++ b/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb @@ -0,0 +1,36 @@ +require 'rails-helper' + +RSpec.describe 'Merchant Coupons', type: :request do + before(:each) do + @merchant = FactoryBot.create(:merchant) + @coupon1 = FactoryBot.create(:coupon, merchant: @merchant, discount_type: 'percent', discount_value: 20) + @coupon2 = FactoryBot.create(:coupon, merchant: @merchant, discount_type: 'dollar', discount_value: 10) + @coupon3 = FactoryBot.create(:coupon, merchant: @merchant, discount_type: 'percent', discount_value: 15, active: false) + + @customer = FactoryBot.create(:customer) + @invoice1 = FactoryBot.create(:invoice, customer: @customer, merchant: @merchant, coupon: @coupon1) + @invoice2 = FactoryBot.create(:invoice, customer: @customer, merchant: @merchant, coupon: @coupon1) + @invoice3 = FactoryBot.create(:invoice, customer: @customer, merchant: @merchant, coupon: @coupon2) + end + + describe 'GET /api/v1/coupons/:id' do + it 'returns the coupon details along with usage count' do + get "/api/v1/coupons/#{@coupon1.id}" + + expect(response).to have_http_status(:success) + json_response = JSON.parse(response.body, symbolize_names: true) + + expect(json_response[:data][:id]).to eq(@coupon1.id.to_s) + expect(json_response[:data][:attributes][:name]).to eq(@coupon1.name) + expect(json_response[:data][:attributes][:code]).to eq(@coupon1.code) + expect(json_response[:data][:attributes][:usage_count]).to eq(2) + end + + it 'returns a 404 error if the coupon does not exist' do + get "/api/v1/coupons/999" + expect(response).to have_http_status(:not_found) + json_response = JSON.parse(response.body, symbolize_names: true) + expect(json_response[:error]).to eq('Coupon not found') + end + end +end \ No newline at end of file From 3d8de667e24e8ef927b748a6b55b1ee8113af1db Mon Sep 17 00:00:00 2001 From: Terra Manning Date: Fri, 8 Nov 2024 10:44:45 -0700 Subject: [PATCH 10/34] feat: make a coupon controller, serializer --- app/controllers/api/v1/merchants/coupons_controller.rb | 6 ++++++ app/serializers/coupon_serializer.rb | 10 ++++++++++ .../api/v1/merchant/merchant_coupons_request_spec.rb | 9 +++++---- 3 files changed, 21 insertions(+), 4 deletions(-) create mode 100644 app/controllers/api/v1/merchants/coupons_controller.rb create mode 100644 app/serializers/coupon_serializer.rb diff --git a/app/controllers/api/v1/merchants/coupons_controller.rb b/app/controllers/api/v1/merchants/coupons_controller.rb new file mode 100644 index 0000000..f5715f5 --- /dev/null +++ b/app/controllers/api/v1/merchants/coupons_controller.rb @@ -0,0 +1,6 @@ +class Api::V1::Merchants::CouponsController < ApplicationController + def show + coupon = Coupon.find_by(id: params[:id]) + render json: CouponSerializer.new(coupon) + end +end \ No newline at end of file diff --git a/app/serializers/coupon_serializer.rb b/app/serializers/coupon_serializer.rb new file mode 100644 index 0000000..ad19ced --- /dev/null +++ b/app/serializers/coupon_serializer.rb @@ -0,0 +1,10 @@ +class CouponSerializer + include JSONAPI::Serializer + + set_type :coupon + attributes :name, :code, :discount_value, :discount_type, :active, :merchant_id, :usage_count + + attribute :merchant_name do |coupon| + coupon.merchant.name + end +end diff --git a/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb b/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb index de81e47..02e70cc 100644 --- a/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb +++ b/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb @@ -15,15 +15,16 @@ describe 'GET /api/v1/coupons/:id' do it 'returns the coupon details along with usage count' do - get "/api/v1/coupons/#{@coupon1.id}" + get "/api/v1/coupons/#{@coupon.id}" expect(response).to have_http_status(:success) json_response = JSON.parse(response.body, symbolize_names: true) - expect(json_response[:data][:id]).to eq(@coupon1.id.to_s) - expect(json_response[:data][:attributes][:name]).to eq(@coupon1.name) - expect(json_response[:data][:attributes][:code]).to eq(@coupon1.code) + expect(json_response[:data][:id]).to eq(@coupon.id.to_s) + expect(json_response[:data][:type]).to eq('coupon') + expect(json_response[:data][:attributes][:name]).to eq(@coupon.name) expect(json_response[:data][:attributes][:usage_count]).to eq(2) + expect(json_response[:data][:attributes][:merchant_name]).to eq(@merchant.name) end it 'returns a 404 error if the coupon does not exist' do From 5e20156efc20c56aa369aa54a1c230e9618e9a1c Mon Sep 17 00:00:00 2001 From: Terra Manning Date: Fri, 8 Nov 2024 14:55:29 -0700 Subject: [PATCH 11/34] refactor: refactor the Coupon model for a more unified test file --- .../api/v1/merchants/coupons_controller.rb | 12 +++- app/models/coupon.rb | 8 +++ app/models/merchant.rb | 5 +- app/serializers/coupon_serializer.rb | 4 ++ config/routes.rb | 4 +- spec/models/coupon_spec.rb | 58 ++++++++++++++++--- .../merchant/merchant_coupons_request_spec.rb | 52 +++++++++++------ 7 files changed, 113 insertions(+), 30 deletions(-) diff --git a/app/controllers/api/v1/merchants/coupons_controller.rb b/app/controllers/api/v1/merchants/coupons_controller.rb index f5715f5..38225be 100644 --- a/app/controllers/api/v1/merchants/coupons_controller.rb +++ b/app/controllers/api/v1/merchants/coupons_controller.rb @@ -1,6 +1,16 @@ class Api::V1::Merchants::CouponsController < ApplicationController + + rescue_from ActiveRecord::RecordNotFound, with: :record_not_found + def show - coupon = Coupon.find_by(id: params[:id]) + merchant = Merchant.find(params[:merchant_id]) + coupon = merchant.coupons.find(params[:id]) render json: CouponSerializer.new(coupon) end + + private + + def record_not_found + render json: ErrorSerializer.format_errors(['Resource not found']), status: :not_found + end end \ No newline at end of file diff --git a/app/models/coupon.rb b/app/models/coupon.rb index 0c9dd02..403fd3c 100644 --- a/app/models/coupon.rb +++ b/app/models/coupon.rb @@ -6,4 +6,12 @@ class Coupon < ApplicationRecord validates :code, presence: true, uniqueness: true validates :discount_value, presence: true validates :discount_type, inclusion: { in: ["percent", "dollar"]} + + def usage_count + invoices.count + end + + def self.find_by_merchant_and_id(merchant_id, coupon_id) + where(merchant_id: merchant_id).find_by(id: coupon_id) + end end \ No newline at end of file diff --git a/app/models/merchant.rb b/app/models/merchant.rb index c1ff568..f1a7d23 100644 --- a/app/models/merchant.rb +++ b/app/models/merchant.rb @@ -3,8 +3,9 @@ class Merchant < ApplicationRecord has_many :items, dependent: :destroy has_many :invoices, dependent: :destroy has_many :customers, through: :invoices - # has_many :invoice_items, through: :invoices - # has_many :transactions, through: :invoices + has_many :invoice_items, through: :invoices + has_many :transactions, through: :invoices + has_many :coupons def self.sorted_by_creation Merchant.order("created_at DESC") diff --git a/app/serializers/coupon_serializer.rb b/app/serializers/coupon_serializer.rb index ad19ced..abb2300 100644 --- a/app/serializers/coupon_serializer.rb +++ b/app/serializers/coupon_serializer.rb @@ -7,4 +7,8 @@ class CouponSerializer attribute :merchant_name do |coupon| coupon.merchant.name end + + attribute :usage_count do |coupon| + coupon.usage_count + end end diff --git a/config/routes.rb b/config/routes.rb index 97f5975..fa56c3f 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -24,8 +24,10 @@ resources :items, only: :index, controller: "merchants/items" resources :customers, only: :index, controller: "merchants/customers" resources :invoices, only: :index, controller: "merchants/invoices" + resources :coupons, only: [:show], controller: 'merchants/coupons' end - resources :coupons, only: [:show] end end end + + diff --git a/spec/models/coupon_spec.rb b/spec/models/coupon_spec.rb index 0b1c913..b924550 100644 --- a/spec/models/coupon_spec.rb +++ b/spec/models/coupon_spec.rb @@ -1,18 +1,60 @@ require 'rails_helper' RSpec.describe Coupon, type: :model do + before(:each) do + @merchant1 = FactoryBot.create(:merchant) + @merchant2 = FactoryBot.create(:merchant) + @customer = FactoryBot.create(:customer) + + @coupon1 = FactoryBot.create(:coupon, merchant: @merchant1, code: 'SAVE10') + @coupon2 = FactoryBot.create(:coupon, merchant: @merchant1, code: 'DISCOUNT20') + @coupon3 = FactoryBot.create(:coupon, merchant: @merchant2, code: 'PROMO15') + + @invoice1 = FactoryBot.create(:invoice, customer: @customer, merchant: @merchant1, coupon: @coupon1) + @invoice2 = FactoryBot.create(:invoice, customer: @customer, merchant: @merchant1, coupon: @coupon1) + @invoice3 = FactoryBot.create(:invoice, customer: @customer, merchant: @merchant1, coupon: @coupon2) + end + describe 'associations' do - it {should belong_to(:merchant)} - it {should have_many(:invoices)} + it { should belong_to(:merchant) } + it { should have_many(:invoices) } end describe 'validations' do - subject { FactoryBot.create(:coupon)} + subject { FactoryBot.create(:coupon) } + + it { should validate_presence_of(:name) } + it { should validate_presence_of(:code) } + it { should validate_uniqueness_of(:code) } + it { should validate_presence_of(:discount_value) } + it { should validate_inclusion_of(:discount_type).in_array(['percent', 'dollar']) } + end + + describe '.find_by_merchant_and_id' do + it 'returns the coupon for the specified merchant' do + result = Coupon.find_by_merchant_and_id(@merchant1.id, @coupon1.id) + expect(result).to eq(@coupon1) + end + + it 'returns nil if the coupon does not belong to the specified merchant' do + result = Coupon.find_by_merchant_and_id(@merchant1.id, @coupon3.id) + expect(result).to be_nil + end + + it 'returns nil if the coupon does not exist' do + result = Coupon.find_by_merchant_and_id(@merchant1.id, 9999) + expect(result).to be_nil + end + end + + describe '#usage_count' do + it 'returns the correct count of associated invoices' do + expect(@coupon1.usage_count).to eq(2) + end - it {should validate_presence_of(:name)} - it {should validate_presence_of(:code)} - it {should validate_uniqueness_of(:code)} - it {should validate_presence_of(:discount_value)} - it {should validate_inclusion_of(:discount_type).in_array(['percent', 'dollar'])} + it 'returns 0 when there are no associated invoices' do + new_coupon = FactoryBot.create(:coupon, merchant: @merchant1) + expect(new_coupon.usage_count).to eq(0) + end end end \ No newline at end of file diff --git a/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb b/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb index 02e70cc..f959c05 100644 --- a/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb +++ b/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb @@ -1,6 +1,6 @@ -require 'rails-helper' +require 'rails_helper' -RSpec.describe 'Merchant Coupons', type: :request do +RSpec.describe 'Merchant Coupons API', type: :request do before(:each) do @merchant = FactoryBot.create(:merchant) @coupon1 = FactoryBot.create(:coupon, merchant: @merchant, discount_type: 'percent', discount_value: 20) @@ -13,25 +13,41 @@ @invoice3 = FactoryBot.create(:invoice, customer: @customer, merchant: @merchant, coupon: @coupon2) end - describe 'GET /api/v1/coupons/:id' do - it 'returns the coupon details along with usage count' do - get "/api/v1/coupons/#{@coupon.id}" + describe 'GET /api/v1/merchants/:merchant_id/coupons/:id' do + context 'when the coupon exists' do + it 'returns the coupon details along with usage count' do + get "/api/v1/merchants/#{@merchant.id}/coupons/#{@coupon1.id}" - expect(response).to have_http_status(:success) - json_response = JSON.parse(response.body, symbolize_names: true) + expect(response).to have_http_status(:success) + json_response = JSON.parse(response.body, symbolize_names: true) - expect(json_response[:data][:id]).to eq(@coupon.id.to_s) - expect(json_response[:data][:type]).to eq('coupon') - expect(json_response[:data][:attributes][:name]).to eq(@coupon.name) - expect(json_response[:data][:attributes][:usage_count]).to eq(2) - expect(json_response[:data][:attributes][:merchant_name]).to eq(@merchant.name) + expect(json_response[:data][:id]).to eq(@coupon1.id.to_s) + expect(json_response[:data][:attributes][:name]).to eq(@coupon1.name) + expect(json_response[:data][:attributes][:discount_type]).to eq(@coupon1.discount_type) + expect(json_response[:data][:attributes][:discount_value]).to eq(@coupon1.discount_value) + expect(json_response[:data][:attributes][:active]).to eq(@coupon1.active) + expect(json_response[:data][:attributes][:usage_count]).to eq(2) + end end - it 'returns a 404 error if the coupon does not exist' do - get "/api/v1/coupons/999" - expect(response).to have_http_status(:not_found) - json_response = JSON.parse(response.body, symbolize_names: true) - expect(json_response[:error]).to eq('Coupon not found') + context 'when the coupon does not exist' do + it 'returns a 404 error' do + get "/api/v1/merchants/#{@merchant.id}/coupons/999" + + expect(response).to have_http_status(:not_found) + json_response = JSON.parse(response.body, symbolize_names: true) + expect(json_response[:error]).to eq('This resource does not exist') + end + end + + context 'when the merchant does not exist' do + it 'returns a 404 error' do + get "/api/v1/merchants/999/coupons/#{@coupon1.id}" + + expect(response).to have_http_status(:not_found) + json_response = JSON.parse(response.body, symbolize_names: true) + expect(json_response[:error]).to eq('This resource does not exist') + end end end -end \ No newline at end of file +end From e16256ea6f021ca1406d5762b87041ebb9b258af Mon Sep 17 00:00:00 2001 From: Terra Manning Date: Fri, 8 Nov 2024 16:37:44 -0700 Subject: [PATCH 12/34] feat: create data for testing --- .../api/v1/merchants/coupons_controller.rb | 12 ++++++++---- spec/factories/coupons.rb | 6 +++--- .../api/v1/merchant/merchant_coupons_request_spec.rb | 12 +++++++----- 3 files changed, 18 insertions(+), 12 deletions(-) diff --git a/app/controllers/api/v1/merchants/coupons_controller.rb b/app/controllers/api/v1/merchants/coupons_controller.rb index 38225be..640a735 100644 --- a/app/controllers/api/v1/merchants/coupons_controller.rb +++ b/app/controllers/api/v1/merchants/coupons_controller.rb @@ -3,14 +3,18 @@ class Api::V1::Merchants::CouponsController < ApplicationController rescue_from ActiveRecord::RecordNotFound, with: :record_not_found def show - merchant = Merchant.find(params[:merchant_id]) - coupon = merchant.coupons.find(params[:id]) - render json: CouponSerializer.new(coupon) + merchant = Merchant.find_by(id: params[:merchant_id]) + return render json: ErrorSerializer.format_errors(['Merchant not found']), status: :not_found unless merchant + + coupon = merchant.coupons.find_by(id: params[:id]) + return render json: ErrorSerializer.format_errors(['Coupon not found']), status: :not_found unless coupon + + render json: CouponSerializer.new(coupon), status: :ok end private def record_not_found - render json: ErrorSerializer.format_errors(['Resource not found']), status: :not_found + render json: ErrorSerializer.format_errors(['Your query could not be completed']), status: :not_found end end \ No newline at end of file diff --git a/spec/factories/coupons.rb b/spec/factories/coupons.rb index 11008e9..17568af 100644 --- a/spec/factories/coupons.rb +++ b/spec/factories/coupons.rb @@ -1,10 +1,10 @@ FactoryBot.define do factory :coupon do - name { "Discount Code"} + name { Faker::Commerce.promotion_code } code { Faker::Alphanumeric.unique.alphanumeric(number: 10).upcase } - discount_value { Faker::Number.between(from: 5.0, to: 50.0)} + discount_value { Faker::Number.between(from: 5.0, to: 50.0).round(2)} discount_type { ["percent", "dollar"].sample} active { true } - association :merchant + merchant end end \ No newline at end of file diff --git a/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb b/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb index f959c05..19fce98 100644 --- a/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb +++ b/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb @@ -31,23 +31,25 @@ end context 'when the coupon does not exist' do - it 'returns a 404 error' do + it 'returns a 404 error with the correct error message' do get "/api/v1/merchants/#{@merchant.id}/coupons/999" expect(response).to have_http_status(:not_found) json_response = JSON.parse(response.body, symbolize_names: true) - expect(json_response[:error]).to eq('This resource does not exist') + + expect(json_response[:errors]).to include('Coupon not found') end end context 'when the merchant does not exist' do - it 'returns a 404 error' do + it 'returns a 404 error with the correct record_not_found' do get "/api/v1/merchants/999/coupons/#{@coupon1.id}" expect(response).to have_http_status(:not_found) json_response = JSON.parse(response.body, symbolize_names: true) - expect(json_response[:error]).to eq('This resource does not exist') + + expect(json_response[:errors]).to include('Merchant not found') end end end -end +end \ No newline at end of file From 85b47e3bc06bbae12aabb30a6d84f7700072d8b0 Mon Sep 17 00:00:00 2001 From: Terra Manning Date: Fri, 8 Nov 2024 17:14:30 -0700 Subject: [PATCH 13/34] fix: minor changes for tests to pass --- .../api/v1/merchants/coupons_controller.rb | 13 +++++++++---- app/serializers/error_serializer.rb | 4 +++- db/seeds.rb | 3 +++ .../merchant/merchant_coupons_request_spec.rb | 17 ++++++++++------- 4 files changed, 25 insertions(+), 12 deletions(-) diff --git a/app/controllers/api/v1/merchants/coupons_controller.rb b/app/controllers/api/v1/merchants/coupons_controller.rb index 640a735..eb1c1f5 100644 --- a/app/controllers/api/v1/merchants/coupons_controller.rb +++ b/app/controllers/api/v1/merchants/coupons_controller.rb @@ -1,13 +1,18 @@ class Api::V1::Merchants::CouponsController < ApplicationController - rescue_from ActiveRecord::RecordNotFound, with: :record_not_found def show merchant = Merchant.find_by(id: params[:merchant_id]) - return render json: ErrorSerializer.format_errors(['Merchant not found']), status: :not_found unless merchant + if merchant.nil? + render json: ErrorSerializer.format_errors(['Your query could not be completed']), status: :not_found + return + end coupon = merchant.coupons.find_by(id: params[:id]) - return render json: ErrorSerializer.format_errors(['Coupon not found']), status: :not_found unless coupon + if coupon.nil? + render json: ErrorSerializer.format_errors(['Your query could not be completed']), status: :not_found + return + end render json: CouponSerializer.new(coupon), status: :ok end @@ -17,4 +22,4 @@ def show def record_not_found render json: ErrorSerializer.format_errors(['Your query could not be completed']), status: :not_found end -end \ No newline at end of file +end diff --git a/app/serializers/error_serializer.rb b/app/serializers/error_serializer.rb index b664c01..893be3d 100644 --- a/app/serializers/error_serializer.rb +++ b/app/serializers/error_serializer.rb @@ -9,7 +9,9 @@ def self.format_errors(messages) def self.format_invalid_search_response { message: "your query could not be completed", - errors: ["invalid search params"] + errors: [ + "invalid search params", + ] } end end \ No newline at end of file diff --git a/db/seeds.rb b/db/seeds.rb index 3320fdb..ead4d7e 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -12,3 +12,6 @@ puts cmd system(cmd) + +# FactoryBot.create(:coupon, name:"BOGO", merchant:112) +# FactoryBot.create_list(:coupon, 2, active:false, name:"BOGO", merchant_id: 112) \ No newline at end of file diff --git a/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb b/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb index 19fce98..1f399da 100644 --- a/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb +++ b/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb @@ -2,11 +2,13 @@ RSpec.describe 'Merchant Coupons API', type: :request do before(:each) do + # Create a merchant and associated coupons @merchant = FactoryBot.create(:merchant) @coupon1 = FactoryBot.create(:coupon, merchant: @merchant, discount_type: 'percent', discount_value: 20) @coupon2 = FactoryBot.create(:coupon, merchant: @merchant, discount_type: 'dollar', discount_value: 10) @coupon3 = FactoryBot.create(:coupon, merchant: @merchant, discount_type: 'percent', discount_value: 15, active: false) + # Create a customer and associated invoices with coupons @customer = FactoryBot.create(:customer) @invoice1 = FactoryBot.create(:invoice, customer: @customer, merchant: @merchant, coupon: @coupon1) @invoice2 = FactoryBot.create(:invoice, customer: @customer, merchant: @merchant, coupon: @coupon1) @@ -16,6 +18,7 @@ describe 'GET /api/v1/merchants/:merchant_id/coupons/:id' do context 'when the coupon exists' do it 'returns the coupon details along with usage count' do + # Use the dynamically assigned IDs from the setup get "/api/v1/merchants/#{@merchant.id}/coupons/#{@coupon1.id}" expect(response).to have_http_status(:success) @@ -32,23 +35,23 @@ context 'when the coupon does not exist' do it 'returns a 404 error with the correct error message' do - get "/api/v1/merchants/#{@merchant.id}/coupons/999" + # Use a non-existent coupon ID + get "/api/v1/merchants/#{@merchant.id}/coupons/9999" expect(response).to have_http_status(:not_found) json_response = JSON.parse(response.body, symbolize_names: true) - - expect(json_response[:errors]).to include('Coupon not found') + expect(json_response[:errors]).to eq(['Your query could not be completed']) end end context 'when the merchant does not exist' do - it 'returns a 404 error with the correct record_not_found' do - get "/api/v1/merchants/999/coupons/#{@coupon1.id}" + it 'returns a 404 error with the correct error message' do + # Use a non-existent merchant ID + get "/api/v1/merchants/9999/coupons/#{@coupon1.id}" expect(response).to have_http_status(:not_found) json_response = JSON.parse(response.body, symbolize_names: true) - - expect(json_response[:errors]).to include('Merchant not found') + expect(json_response[:errors]).to eq(['Your query could not be completed']) end end end From bc3dc1b8fe2b19a0dad48a8400d5c63a048a5e51 Mon Sep 17 00:00:00 2001 From: Terra Manning Date: Sat, 9 Nov 2024 11:34:11 -0700 Subject: [PATCH 14/34] refactor: modify code to reduce redundancy --- .../api/v1/merchants/coupons_controller.rb | 16 +++------------- app/models/coupon.rb | 2 +- 2 files changed, 4 insertions(+), 14 deletions(-) diff --git a/app/controllers/api/v1/merchants/coupons_controller.rb b/app/controllers/api/v1/merchants/coupons_controller.rb index eb1c1f5..7189b0b 100644 --- a/app/controllers/api/v1/merchants/coupons_controller.rb +++ b/app/controllers/api/v1/merchants/coupons_controller.rb @@ -2,18 +2,8 @@ class Api::V1::Merchants::CouponsController < ApplicationController rescue_from ActiveRecord::RecordNotFound, with: :record_not_found def show - merchant = Merchant.find_by(id: params[:merchant_id]) - if merchant.nil? - render json: ErrorSerializer.format_errors(['Your query could not be completed']), status: :not_found - return - end - - coupon = merchant.coupons.find_by(id: params[:id]) - if coupon.nil? - render json: ErrorSerializer.format_errors(['Your query could not be completed']), status: :not_found - return - end - + merchant = Merchant.find(params[:merchant_id]) + coupon = merchant.coupons.find(params[:id]) render json: CouponSerializer.new(coupon), status: :ok end @@ -22,4 +12,4 @@ def show def record_not_found render json: ErrorSerializer.format_errors(['Your query could not be completed']), status: :not_found end -end +end \ No newline at end of file diff --git a/app/models/coupon.rb b/app/models/coupon.rb index 403fd3c..e8df518 100644 --- a/app/models/coupon.rb +++ b/app/models/coupon.rb @@ -12,6 +12,6 @@ def usage_count end def self.find_by_merchant_and_id(merchant_id, coupon_id) - where(merchant_id: merchant_id).find_by(id: coupon_id) + find_by(merchant_id: merchant_id, id: coupon_id) end end \ No newline at end of file From c7f327ba345685b7975fddb6a07e256c428654a5 Mon Sep 17 00:00:00 2001 From: Terra Manning Date: Sat, 9 Nov 2024 12:24:02 -0700 Subject: [PATCH 15/34] refactor: reduce the redundancy in the coupon test files --- spec/factories/coupons.rb | 2 +- spec/models/coupon_spec.rb | 45 ++++++++++++++----- .../merchant/merchant_coupons_request_spec.rb | 12 +---- 3 files changed, 38 insertions(+), 21 deletions(-) diff --git a/spec/factories/coupons.rb b/spec/factories/coupons.rb index 17568af..f1eb700 100644 --- a/spec/factories/coupons.rb +++ b/spec/factories/coupons.rb @@ -5,6 +5,6 @@ discount_value { Faker::Number.between(from: 5.0, to: 50.0).round(2)} discount_type { ["percent", "dollar"].sample} active { true } - merchant + association :merchant, factory: :merchant end end \ No newline at end of file diff --git a/spec/models/coupon_spec.rb b/spec/models/coupon_spec.rb index b924550..e52a93e 100644 --- a/spec/models/coupon_spec.rb +++ b/spec/models/coupon_spec.rb @@ -31,19 +31,44 @@ end describe '.find_by_merchant_and_id' do - it 'returns the coupon for the specified merchant' do - result = Coupon.find_by_merchant_and_id(@merchant1.id, @coupon1.id) - expect(result).to eq(@coupon1) + context 'when the coupon exists for the specified merchant' do + it 'returns the coupon' do + result = Coupon.find_by_merchant_and_id(@merchant1.id, @coupon1.id) + expect(result).to eq(@coupon1) + end end - it 'returns nil if the coupon does not belong to the specified merchant' do - result = Coupon.find_by_merchant_and_id(@merchant1.id, @coupon3.id) - expect(result).to be_nil + context 'when the coupon does not belong to the specified merchant' do + it 'returns nil' do + result = Coupon.find_by_merchant_and_id(@merchant1.id, @coupon3.id) + expect(result).to be_nil + end end - it 'returns nil if the coupon does not exist' do - result = Coupon.find_by_merchant_and_id(@merchant1.id, 9999) - expect(result).to be_nil + context 'when the coupon does not exist' do + it 'returns nil' do + result = Coupon.find_by_merchant_and_id(@merchant1.id, 9999) + expect(result).to be_nil + end + end + + context 'when merchant_id or coupon_id is nil' do + it 'returns nil if merchant_id is nil' do + result = Coupon.find_by_merchant_and_id(nil, @coupon1.id) + expect(result).to be_nil + end + + it 'returns nil if coupon_id is nil' do + result = Coupon.find_by_merchant_and_id(@merchant1.id, nil) + expect(result).to be_nil + end + end + + context 'when ids are not integers' do + it 'returns nil if ids are not integers' do + result = Coupon.find_by_merchant_and_id('abc', 'xyz') + expect(result).to be_nil + end end end @@ -57,4 +82,4 @@ expect(new_coupon.usage_count).to eq(0) end end -end \ No newline at end of file +end diff --git a/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb b/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb index 1f399da..90ae7a0 100644 --- a/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb +++ b/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb @@ -2,28 +2,22 @@ RSpec.describe 'Merchant Coupons API', type: :request do before(:each) do - # Create a merchant and associated coupons + Faker::UniqueGenerator.clear @merchant = FactoryBot.create(:merchant) @coupon1 = FactoryBot.create(:coupon, merchant: @merchant, discount_type: 'percent', discount_value: 20) @coupon2 = FactoryBot.create(:coupon, merchant: @merchant, discount_type: 'dollar', discount_value: 10) - @coupon3 = FactoryBot.create(:coupon, merchant: @merchant, discount_type: 'percent', discount_value: 15, active: false) - - # Create a customer and associated invoices with coupons @customer = FactoryBot.create(:customer) @invoice1 = FactoryBot.create(:invoice, customer: @customer, merchant: @merchant, coupon: @coupon1) @invoice2 = FactoryBot.create(:invoice, customer: @customer, merchant: @merchant, coupon: @coupon1) - @invoice3 = FactoryBot.create(:invoice, customer: @customer, merchant: @merchant, coupon: @coupon2) end describe 'GET /api/v1/merchants/:merchant_id/coupons/:id' do context 'when the coupon exists' do it 'returns the coupon details along with usage count' do - # Use the dynamically assigned IDs from the setup get "/api/v1/merchants/#{@merchant.id}/coupons/#{@coupon1.id}" expect(response).to have_http_status(:success) json_response = JSON.parse(response.body, symbolize_names: true) - expect(json_response[:data][:id]).to eq(@coupon1.id.to_s) expect(json_response[:data][:attributes][:name]).to eq(@coupon1.name) expect(json_response[:data][:attributes][:discount_type]).to eq(@coupon1.discount_type) @@ -35,7 +29,6 @@ context 'when the coupon does not exist' do it 'returns a 404 error with the correct error message' do - # Use a non-existent coupon ID get "/api/v1/merchants/#{@merchant.id}/coupons/9999" expect(response).to have_http_status(:not_found) @@ -46,7 +39,6 @@ context 'when the merchant does not exist' do it 'returns a 404 error with the correct error message' do - # Use a non-existent merchant ID get "/api/v1/merchants/9999/coupons/#{@coupon1.id}" expect(response).to have_http_status(:not_found) @@ -55,4 +47,4 @@ end end end -end \ No newline at end of file +end From 90bae4051bc143d3c2091780421aba509d20eaa9 Mon Sep 17 00:00:00 2001 From: Terra Manning Date: Sat, 9 Nov 2024 12:44:02 -0700 Subject: [PATCH 16/34] feat: add endpoint get all merchant coupons --- .../api/v1/merchants/coupons_controller.rb | 7 ++++++ config/routes.rb | 2 +- .../merchant/merchant_coupons_request_spec.rb | 25 +++++++++++++++++++ 3 files changed, 33 insertions(+), 1 deletion(-) diff --git a/app/controllers/api/v1/merchants/coupons_controller.rb b/app/controllers/api/v1/merchants/coupons_controller.rb index 7189b0b..0aed45f 100644 --- a/app/controllers/api/v1/merchants/coupons_controller.rb +++ b/app/controllers/api/v1/merchants/coupons_controller.rb @@ -1,6 +1,13 @@ class Api::V1::Merchants::CouponsController < ApplicationController rescue_from ActiveRecord::RecordNotFound, with: :record_not_found + def index + merchant = Merchant.find(params[:merchant_id]) + coupons = merchant.coupons + render json: CouponSerializer.new(coupons), status: :ok + end + + def show merchant = Merchant.find(params[:merchant_id]) coupon = merchant.coupons.find(params[:id]) diff --git a/config/routes.rb b/config/routes.rb index fa56c3f..944a233 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -24,7 +24,7 @@ resources :items, only: :index, controller: "merchants/items" resources :customers, only: :index, controller: "merchants/customers" resources :invoices, only: :index, controller: "merchants/invoices" - resources :coupons, only: [:show], controller: 'merchants/coupons' + resources :coupons, only: [:index, :show], controller: "merchants/coupons" end end end diff --git a/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb b/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb index 90ae7a0..018f807 100644 --- a/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb +++ b/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb @@ -47,4 +47,29 @@ end end end + + describe 'GET /api/v1/merchants/:merchant_id/coupons' do + context 'when the merchant exists' do + it 'returns all coupons for the merchant' do + get "/api/v1/merchants/#{@merchant.id}/coupons" + + expect(response).to have_http_status(:success) + json_response = JSON.parse(response.body, symbolize_names: true) + + expect(json_response[:data].length).to eq(2) + expect(json_response[:data][0][:attributes][:merchant_id]).to eq(@merchant.id) + expect(json_response[:data][1][:attributes][:merchant_id]).to eq(@merchant.id) + end + end + + context 'when the merchant does not exist' do + it 'returns a 404 error' do + get "/api/v1/merchants/9999/coupons" + + expect(response).to have_http_status(:not_found) + json_response = JSON.parse(response.body, symbolize_names: true) + expect(json_response[:errors]).to eq(["Your query could not be completed"]) + end + end + end end From fa6d8e138efe8a34d89d11f46e19c89c1c92f787 Mon Sep 17 00:00:00 2001 From: Terra Manning Date: Sat, 9 Nov 2024 13:41:13 -0700 Subject: [PATCH 17/34] feat: create endpoint for merchant coupon create --- .../api/v1/merchants/coupons_controller.rb | 16 ++++++- app/serializers/error_serializer.rb | 15 ++++--- config/routes.rb | 2 +- .../merchant/merchant_coupons_request_spec.rb | 42 +++++++++++++++++++ 4 files changed, 68 insertions(+), 7 deletions(-) diff --git a/app/controllers/api/v1/merchants/coupons_controller.rb b/app/controllers/api/v1/merchants/coupons_controller.rb index 0aed45f..348ab26 100644 --- a/app/controllers/api/v1/merchants/coupons_controller.rb +++ b/app/controllers/api/v1/merchants/coupons_controller.rb @@ -7,15 +7,29 @@ def index render json: CouponSerializer.new(coupons), status: :ok end - def show merchant = Merchant.find(params[:merchant_id]) coupon = merchant.coupons.find(params[:id]) render json: CouponSerializer.new(coupon), status: :ok end + def create + merchant = Merchant.find(params[:merchant_id]) + coupon = merchant.coupons.new(coupon_params) + + if coupon.save + render json: CouponSerializer.new(coupon), status: :created + else + render json: ErrorSerializer.format_validation_errors(coupon), status: :unprocessable_entity + end + end + private + def coupon_params + params.require(:coupon).permit(:name, :code, :discount_value, :discount_type, :active) + end + def record_not_found render json: ErrorSerializer.format_errors(['Your query could not be completed']), status: :not_found end diff --git a/app/serializers/error_serializer.rb b/app/serializers/error_serializer.rb index 893be3d..ce69308 100644 --- a/app/serializers/error_serializer.rb +++ b/app/serializers/error_serializer.rb @@ -2,16 +2,21 @@ class ErrorSerializer def self.format_errors(messages) { message: 'Your query could not be completed', - errors: messages + errors: Array(messages) } end - def self.format_invalid_search_response + def self.format_validation_errors(record) { message: "your query could not be completed", - errors: [ - "invalid search params", - ] + errors: record.errors.full_messages + } + end + + def self.format_invalid_search_response + { + message: "your query could not be completed", + errors: ["invalid search params"] } end end \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index 944a233..b0f5c40 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -24,7 +24,7 @@ resources :items, only: :index, controller: "merchants/items" resources :customers, only: :index, controller: "merchants/customers" resources :invoices, only: :index, controller: "merchants/invoices" - resources :coupons, only: [:index, :show], controller: "merchants/coupons" + resources :coupons, only: [:index, :show, :create], controller: "merchants/coupons" end end end diff --git a/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb b/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb index 018f807..cf8a503 100644 --- a/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb +++ b/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb @@ -72,4 +72,46 @@ end end end + + describe 'POST /api/v1/merchants/:merchant_id/coupons' do + context 'when the request is valid' do + it 'creates a new coupon' do + coupon_params = { + coupon: { + name: 'Holiday Discount', + code: 'HOLIDAY2024', + discount_value: 25, + discount_type: 'percent', + active: true + } + } + post "/api/v1/merchants/#{@merchant.id}/coupons", params: coupon_params + + expect(response).to have_http_status(:created) + json_response = JSON.parse(response.body, symbolize_names: true) + expect(json_response[:data][:attributes][:name]).to eq('Holiday Discount') + expect(json_response[:data][:attributes][:code]).to eq('HOLIDAY2024') + expect(json_response[:data][:attributes][:discount_value]).to eq(25) + expect(json_response[:data][:attributes][:discount_type]).to eq('percent') + expect(json_response[:data][:attributes][:active]).to be true + end + end + + context 'when the request is invalid' do + it 'returns a 422 error with validation messages' do + invalid_params = { coupon: { name: '', code: '', discount_value: nil, discount_type: '' } } + post "/api/v1/merchants/#{@merchant.id}/coupons", params: invalid_params + + expect(response).to have_http_status(:unprocessable_entity) + + json_response = JSON.parse(response.body, symbolize_names: true) + expect(json_response[:errors]).to include( + "Name can't be blank", + "Code can't be blank", + "Discount value can't be blank", + "Discount type is not included in the list" + ) + end + end + end end From 99f9d76a87178bd7e2cd8361f5fa314d9d197b97 Mon Sep 17 00:00:00 2001 From: Terra Manning Date: Sun, 10 Nov 2024 04:28:37 -0700 Subject: [PATCH 18/34] feat: this code is all currently working up through the create endpoint --- .../api/v1/merchants/coupons_controller.rb | 16 ++++++- app/models/merchant.rb | 4 ++ app/serializers/error_serializer.rb | 15 ++++--- config/routes.rb | 2 +- spec/models/coupon_spec.rb | 2 +- .../merchant/merchant_coupons_request_spec.rb | 44 ++++++++++++++++++- 6 files changed, 74 insertions(+), 9 deletions(-) diff --git a/app/controllers/api/v1/merchants/coupons_controller.rb b/app/controllers/api/v1/merchants/coupons_controller.rb index 0aed45f..348ab26 100644 --- a/app/controllers/api/v1/merchants/coupons_controller.rb +++ b/app/controllers/api/v1/merchants/coupons_controller.rb @@ -7,15 +7,29 @@ def index render json: CouponSerializer.new(coupons), status: :ok end - def show merchant = Merchant.find(params[:merchant_id]) coupon = merchant.coupons.find(params[:id]) render json: CouponSerializer.new(coupon), status: :ok end + def create + merchant = Merchant.find(params[:merchant_id]) + coupon = merchant.coupons.new(coupon_params) + + if coupon.save + render json: CouponSerializer.new(coupon), status: :created + else + render json: ErrorSerializer.format_validation_errors(coupon), status: :unprocessable_entity + end + end + private + def coupon_params + params.require(:coupon).permit(:name, :code, :discount_value, :discount_type, :active) + end + def record_not_found render json: ErrorSerializer.format_errors(['Your query could not be completed']), status: :not_found end diff --git a/app/models/merchant.rb b/app/models/merchant.rb index f1a7d23..032cfd3 100644 --- a/app/models/merchant.rb +++ b/app/models/merchant.rb @@ -7,6 +7,10 @@ class Merchant < ApplicationRecord has_many :transactions, through: :invoices has_many :coupons + # def can_activate_coupon? + # coupons.where(active: true).count < 5 + # end + def self.sorted_by_creation Merchant.order("created_at DESC") end diff --git a/app/serializers/error_serializer.rb b/app/serializers/error_serializer.rb index 893be3d..ce69308 100644 --- a/app/serializers/error_serializer.rb +++ b/app/serializers/error_serializer.rb @@ -2,16 +2,21 @@ class ErrorSerializer def self.format_errors(messages) { message: 'Your query could not be completed', - errors: messages + errors: Array(messages) } end - def self.format_invalid_search_response + def self.format_validation_errors(record) { message: "your query could not be completed", - errors: [ - "invalid search params", - ] + errors: record.errors.full_messages + } + end + + def self.format_invalid_search_response + { + message: "your query could not be completed", + errors: ["invalid search params"] } end end \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index 944a233..b1b6733 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -24,7 +24,7 @@ resources :items, only: :index, controller: "merchants/items" resources :customers, only: :index, controller: "merchants/customers" resources :invoices, only: :index, controller: "merchants/invoices" - resources :coupons, only: [:index, :show], controller: "merchants/coupons" + resources :coupons, only: [:index, :show, :create, :update], controller: "merchants/coupons" end end end diff --git a/spec/models/coupon_spec.rb b/spec/models/coupon_spec.rb index e52a93e..a9755dd 100644 --- a/spec/models/coupon_spec.rb +++ b/spec/models/coupon_spec.rb @@ -82,4 +82,4 @@ expect(new_coupon.usage_count).to eq(0) end end -end +end \ No newline at end of file diff --git a/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb b/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb index 018f807..5493fc5 100644 --- a/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb +++ b/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb @@ -72,4 +72,46 @@ end end end -end + + describe 'POST /api/v1/merchants/:merchant_id/coupons' do + context 'when the request is valid' do + it 'creates a new coupon' do + coupon_params = { + coupon: { + name: 'Holiday Discount', + code: 'HOLIDAY2024', + discount_value: 25, + discount_type: 'percent', + active: true + } + } + post "/api/v1/merchants/#{@merchant.id}/coupons", params: coupon_params + + expect(response).to have_http_status(:created) + json_response = JSON.parse(response.body, symbolize_names: true) + expect(json_response[:data][:attributes][:name]).to eq('Holiday Discount') + expect(json_response[:data][:attributes][:code]).to eq('HOLIDAY2024') + expect(json_response[:data][:attributes][:discount_value]).to eq(25) + expect(json_response[:data][:attributes][:discount_type]).to eq('percent') + expect(json_response[:data][:attributes][:active]).to be true + end + end + + context 'when the request is invalid' do + it 'returns a 422 error with validation messages' do + invalid_params = { coupon: { name: '', code: '', discount_value: nil, discount_type: '' } } + post "/api/v1/merchants/#{@merchant.id}/coupons", params: invalid_params + + expect(response).to have_http_status(:unprocessable_entity) + + json_response = JSON.parse(response.body, symbolize_names: true) + expect(json_response[:errors]).to include( + "Name can't be blank", + "Code can't be blank", + "Discount value can't be blank", + "Discount type is not included in the list" + ) + end + end + end +end \ No newline at end of file From 12eb428498c5781bdab1794d25082054d67f9154 Mon Sep 17 00:00:00 2001 From: Terra Manning Date: Sun, 10 Nov 2024 04:40:36 -0700 Subject: [PATCH 19/34] feat: add a test to show only unique coupons can be added --- spec/models/coupon_spec.rb | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/spec/models/coupon_spec.rb b/spec/models/coupon_spec.rb index a9755dd..d03e2e8 100644 --- a/spec/models/coupon_spec.rb +++ b/spec/models/coupon_spec.rb @@ -57,12 +57,12 @@ result = Coupon.find_by_merchant_and_id(nil, @coupon1.id) expect(result).to be_nil end + end it 'returns nil if coupon_id is nil' do result = Coupon.find_by_merchant_and_id(@merchant1.id, nil) expect(result).to be_nil end - end context 'when ids are not integers' do it 'returns nil if ids are not integers' do @@ -70,16 +70,27 @@ expect(result).to be_nil end end - end describe '#usage_count' do it 'returns the correct count of associated invoices' do expect(@coupon1.usage_count).to eq(2) end + end it 'returns 0 when there are no associated invoices' do new_coupon = FactoryBot.create(:coupon, merchant: @merchant1) expect(new_coupon.usage_count).to eq(0) end end + + context 'when the coupon code is not unique' do + it 'is not valid' do + FactoryBot.create(:coupon, merchant: @merchant1, code: 'SAVEMONEY') + + duplicate_coupon = FactoryBot.build(:coupon, merchant: @merchant2, code: 'SAVEMONEY') + + expect(duplicate_coupon.valid?).to be_falsey + expect(duplicate_coupon.errors[:code]).to include('has already been taken') + end + end end \ No newline at end of file From 02c9d1587b834d450412134aba803a42e267b7a9 Mon Sep 17 00:00:00 2001 From: Terra Manning Date: Sun, 10 Nov 2024 05:02:26 -0700 Subject: [PATCH 20/34] feat: merchant cannot exceed 5 active coupons --- app/models/coupon.rb | 14 +++++++++++++- spec/factories/coupons.rb | 4 ++-- spec/models/coupon_spec.rb | 31 +++++++++++++++++++++++++++++++ 3 files changed, 46 insertions(+), 3 deletions(-) diff --git a/app/models/coupon.rb b/app/models/coupon.rb index e8df518..e9df7df 100644 --- a/app/models/coupon.rb +++ b/app/models/coupon.rb @@ -1,5 +1,5 @@ class Coupon < ApplicationRecord - belongs_to :merchant + belongs_to :merchant, required: true has_many :invoices validates :name, presence: true @@ -7,6 +7,8 @@ class Coupon < ApplicationRecord validates :discount_value, presence: true validates :discount_type, inclusion: { in: ["percent", "dollar"]} + validate :merchant_cannot_exceed_five_active_coupons, if: :active? + def usage_count invoices.count end @@ -14,4 +16,14 @@ def usage_count def self.find_by_merchant_and_id(merchant_id, coupon_id) find_by(merchant_id: merchant_id, id: coupon_id) end + + private + + def merchant_cannot_exceed_five_active_coupons + return unless merchant.present? + + if merchant.coupons.where(active: true).count >= 5 + errors.add(:base, 'Merchant cannot have more than 5 active coupons') + end + end end \ No newline at end of file diff --git a/spec/factories/coupons.rb b/spec/factories/coupons.rb index f1eb700..5877b5a 100644 --- a/spec/factories/coupons.rb +++ b/spec/factories/coupons.rb @@ -4,7 +4,7 @@ code { Faker::Alphanumeric.unique.alphanumeric(number: 10).upcase } discount_value { Faker::Number.between(from: 5.0, to: 50.0).round(2)} discount_type { ["percent", "dollar"].sample} - active { true } - association :merchant, factory: :merchant + active { false } + association :merchant end end \ No newline at end of file diff --git a/spec/models/coupon_spec.rb b/spec/models/coupon_spec.rb index d03e2e8..e6677f2 100644 --- a/spec/models/coupon_spec.rb +++ b/spec/models/coupon_spec.rb @@ -93,4 +93,35 @@ expect(duplicate_coupon.errors[:code]).to include('has already been taken') end end + + context 'when a merchant has 5 active coupons' do + before(:each) do + @merchant = FactoryBot.create(:merchant) + # Create 5 active coupons + FactoryBot.create_list(:coupon, 5, merchant: @merchant, active: true) + end + + it 'does not allow creating a 6th active coupon' do + new_coupon = FactoryBot.build(:coupon, merchant: @merchant, active: true) + + expect(new_coupon.valid?).to be_falsey + expect(new_coupon.errors[:base]).to include('Merchant cannot have more than 5 active coupons') + end + + it 'allows creating an inactive coupon' do + new_coupon = FactoryBot.build(:coupon, merchant: @merchant, active: false) + + expect(new_coupon.valid?).to be_truthy + end + + it 'does not allow activating a 6th coupon if there are already 5 active coupons' do + inactive_coupon = FactoryBot.create(:coupon, merchant: @merchant, active: false) + + # Attempt to activate the inactive coupon + inactive_coupon.active = true + inactive_coupon.save + + expect(inactive_coupon.errors[:base]).to include('Merchant cannot have more than 5 active coupons') + end + end end \ No newline at end of file From 3f909687d359971bf115c33bd41bc8b997870b2c Mon Sep 17 00:00:00 2001 From: Terra Manning Date: Sun, 10 Nov 2024 08:35:08 -0700 Subject: [PATCH 21/34] refactor: modified controller logic to use model method in show --- app/controllers/api/v1/merchants/coupons_controller.rb | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/app/controllers/api/v1/merchants/coupons_controller.rb b/app/controllers/api/v1/merchants/coupons_controller.rb index 348ab26..d14c064 100644 --- a/app/controllers/api/v1/merchants/coupons_controller.rb +++ b/app/controllers/api/v1/merchants/coupons_controller.rb @@ -8,9 +8,13 @@ def index end def show - merchant = Merchant.find(params[:merchant_id]) - coupon = merchant.coupons.find(params[:id]) - render json: CouponSerializer.new(coupon), status: :ok + coupon = Coupon.find_by_merchant_and_id(params[:merchant_id], params[:id]) + + if coupon + render json: CouponSerializer.new(coupon), status: :ok + else + record_not_found + end end def create From bc3cf82fb4a423f976ddb93bdf3aa2d54730cd73 Mon Sep 17 00:00:00 2001 From: Terra Manning Date: Sun, 10 Nov 2024 08:58:13 -0700 Subject: [PATCH 22/34] test: usage_count working as expected --- db/seeds.rb | 51 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 49 insertions(+), 2 deletions(-) diff --git a/db/seeds.rb b/db/seeds.rb index ead4d7e..bf98b24 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -12,6 +12,53 @@ puts cmd system(cmd) - +# Create Merchant Coupons # FactoryBot.create(:coupon, name:"BOGO", merchant:112) -# FactoryBot.create_list(:coupon, 2, active:false, name:"BOGO", merchant_id: 112) \ No newline at end of file +# FactoryBot.create_list(:coupon, 2, active:false, name:"BOGO", merchant_id: 112) + +# Check if Merchants can have more than 5 active coupons +# merchant = Merchant.find_by(name: "Test Merchant") || Merchant.create!(name: "Test Merchant") +# 5.times do |i| +# Coupon.create!( +# name: "Coupon #{i + 1}", +# code: "UNIQUE_CODE_#{Time.now.to_i}_#{i}", # Ensuring unique codes +# discount_value: 10, +# discount_type: "percent", +# merchant: merchant, +# active: true +# ) +# end +# sixth_coupon = Coupon.new( +# name: "Coupon 6", +# code: "UNIQUE_CODE_6", +# discount_value: 15, +# discount_type: "percent", +# merchant: merchant, +# active: true +# ) + +# sixth_coupon.save + +# puts "Saved successfully? #{sixth_coupon.persisted?}" +# puts "Errors: #{sixth_coupon.errors.full_messages}" + +# Test usage_count +#merchant = Merchant.find_or_create_by(name: "Test Merchant") +# customer = Customer.find_or_create_by(first_name: "Test", last_name: "Customer") +# coupon = Coupon.create!( +# name: "Discount", +# code: "SAVE10now", +# discount_value: 10, +# discount_type: "percent", +# merchant: merchant, +# active: true +# ) +# 3.times do +# Invoice.create!( +# status: "shipped", # Ensure this status is valid in your model +# coupon: coupon, +# merchant: merchant, +# customer: customer +# ) +# end +# puts coupon.usage_count \ No newline at end of file From b2f7fb3148de24180abd95c980afcf954b333435 Mon Sep 17 00:00:00 2001 From: Terra Manning Date: Sun, 10 Nov 2024 12:55:40 -0700 Subject: [PATCH 23/34] feat: create activate and deactivate endpoints --- .../api/v1/merchants/coupons_controller.rb | 37 +++++++++------ app/models/coupon.rb | 42 ++++++++++++++--- app/serializers/error_serializer.rb | 9 +--- spec/models/coupon_spec.rb | 47 +++++++++++++++---- .../merchant/merchant_coupons_request_spec.rb | 47 ++++++++++++++++--- 5 files changed, 138 insertions(+), 44 deletions(-) diff --git a/app/controllers/api/v1/merchants/coupons_controller.rb b/app/controllers/api/v1/merchants/coupons_controller.rb index d14c064..0931c02 100644 --- a/app/controllers/api/v1/merchants/coupons_controller.rb +++ b/app/controllers/api/v1/merchants/coupons_controller.rb @@ -2,29 +2,38 @@ class Api::V1::Merchants::CouponsController < ApplicationController rescue_from ActiveRecord::RecordNotFound, with: :record_not_found def index - merchant = Merchant.find(params[:merchant_id]) - coupons = merchant.coupons - render json: CouponSerializer.new(coupons), status: :ok + coupons = Coupon.by_merchant(params[:merchant_id]) + if coupons.present? + render json: CouponSerializer.new(coupons), status: :ok + else + record_not_found + end end def show coupon = Coupon.find_by_merchant_and_id(params[:merchant_id], params[:id]) - - if coupon - render json: CouponSerializer.new(coupon), status: :ok + return record_not_found unless coupon + + render json: CouponSerializer.new(coupon), status: :ok + end + + def create + coupon = Coupon.create_for_merchant(params[:merchant_id], coupon_params) + if coupon&.persisted? + render json: CouponSerializer.new(coupon), status: :created else - record_not_found + render json: ErrorSerializer.format_errors(coupon&.errors&.full_messages || ['Invalid parameters']), status: :unprocessable_entity end end - def create - merchant = Merchant.find(params[:merchant_id]) - coupon = merchant.coupons.new(coupon_params) + def update + coupon = Coupon.find_by_merchant_and_id(params[:merchant_id], params[:id]) + return record_not_found unless coupon - if coupon.save - render json: CouponSerializer.new(coupon), status: :created + if coupon.update_with_status(coupon_params) + render json: CouponSerializer.new(coupon), status: :ok else - render json: ErrorSerializer.format_validation_errors(coupon), status: :unprocessable_entity + render json: ErrorSerializer.format_errors(coupon.errors.full_messages), status: :unprocessable_entity end end @@ -37,4 +46,4 @@ def coupon_params def record_not_found render json: ErrorSerializer.format_errors(['Your query could not be completed']), status: :not_found end -end \ No newline at end of file +end diff --git a/app/models/coupon.rb b/app/models/coupon.rb index e9df7df..69c4b2c 100644 --- a/app/models/coupon.rb +++ b/app/models/coupon.rb @@ -5,25 +5,55 @@ class Coupon < ApplicationRecord validates :name, presence: true validates :code, presence: true, uniqueness: true validates :discount_value, presence: true - validates :discount_type, inclusion: { in: ["percent", "dollar"]} - + validates :discount_type, inclusion: { in: ["percent", "dollar"] } validate :merchant_cannot_exceed_five_active_coupons, if: :active? - def usage_count - invoices.count + FORBIDDEN_STATUSES = ["shipped", "packaged", "returned"] + + def self.by_merchant(merchant_id) + where(merchant_id: merchant_id) end def self.find_by_merchant_and_id(merchant_id, coupon_id) find_by(merchant_id: merchant_id, id: coupon_id) end + def self.create_for_merchant(merchant_id, params) + merchant = Merchant.find_by(id: merchant_id) + return nil unless merchant + merchant.coupons.create(params) + end + + def usage_count + invoices.count + end + + def update_with_status(params) + if params.key?(:active) + update_status(params[:active]) + else + update(params) + end + end + + def update_status(new_status) + if new_status == false && invoices_with_forbidden_status? + errors.add(:base, 'Cannot deactivate coupon with invoices in shipped, packaged, or returned status') + return false + end + update(active: new_status) + end + private + def invoices_with_forbidden_status? + invoices.where(status: FORBIDDEN_STATUSES).exists? + end + def merchant_cannot_exceed_five_active_coupons return unless merchant.present? - if merchant.coupons.where(active: true).count >= 5 errors.add(:base, 'Merchant cannot have more than 5 active coupons') end end -end \ No newline at end of file +end diff --git a/app/serializers/error_serializer.rb b/app/serializers/error_serializer.rb index ce69308..172b591 100644 --- a/app/serializers/error_serializer.rb +++ b/app/serializers/error_serializer.rb @@ -6,17 +6,10 @@ def self.format_errors(messages) } end - def self.format_validation_errors(record) - { - message: "your query could not be completed", - errors: record.errors.full_messages - } - end - def self.format_invalid_search_response { message: "your query could not be completed", errors: ["invalid search params"] } end -end \ No newline at end of file +end diff --git a/spec/models/coupon_spec.rb b/spec/models/coupon_spec.rb index e6677f2..5935414 100644 --- a/spec/models/coupon_spec.rb +++ b/spec/models/coupon_spec.rb @@ -57,12 +57,12 @@ result = Coupon.find_by_merchant_and_id(nil, @coupon1.id) expect(result).to be_nil end - end it 'returns nil if coupon_id is nil' do result = Coupon.find_by_merchant_and_id(@merchant1.id, nil) expect(result).to be_nil end + end context 'when ids are not integers' do it 'returns nil if ids are not integers' do @@ -70,12 +70,12 @@ expect(result).to be_nil end end + end describe '#usage_count' do it 'returns the correct count of associated invoices' do expect(@coupon1.usage_count).to eq(2) end - end it 'returns 0 when there are no associated invoices' do new_coupon = FactoryBot.create(:coupon, merchant: @merchant1) @@ -86,7 +86,6 @@ context 'when the coupon code is not unique' do it 'is not valid' do FactoryBot.create(:coupon, merchant: @merchant1, code: 'SAVEMONEY') - duplicate_coupon = FactoryBot.build(:coupon, merchant: @merchant2, code: 'SAVEMONEY') expect(duplicate_coupon.valid?).to be_falsey @@ -97,31 +96,59 @@ context 'when a merchant has 5 active coupons' do before(:each) do @merchant = FactoryBot.create(:merchant) - # Create 5 active coupons FactoryBot.create_list(:coupon, 5, merchant: @merchant, active: true) end it 'does not allow creating a 6th active coupon' do new_coupon = FactoryBot.build(:coupon, merchant: @merchant, active: true) - expect(new_coupon.valid?).to be_falsey expect(new_coupon.errors[:base]).to include('Merchant cannot have more than 5 active coupons') end it 'allows creating an inactive coupon' do new_coupon = FactoryBot.build(:coupon, merchant: @merchant, active: false) - expect(new_coupon.valid?).to be_truthy end it 'does not allow activating a 6th coupon if there are already 5 active coupons' do inactive_coupon = FactoryBot.create(:coupon, merchant: @merchant, active: false) - - # Attempt to activate the inactive coupon inactive_coupon.active = true inactive_coupon.save - expect(inactive_coupon.errors[:base]).to include('Merchant cannot have more than 5 active coupons') end end -end \ No newline at end of file + + describe '#update_status' do + context 'when trying to deactivate a coupon with forbidden invoices' do + before do + FactoryBot.create(:invoice, status: 'shipped', coupon: @coupon1) + end + + it 'does not allow deactivation' do + expect(@coupon1.update_status(false)).to be false + expect(@coupon1.errors[:base]).to include('Cannot deactivate coupon with invoices in shipped, packaged, or returned status') + end + end + + it 'activates the coupon if it was previously inactive' do + expect(@coupon2.active).to be false + result = @coupon2.update_status(true) + expect(result).to be_truthy + expect(@coupon2.reload.active).to be true + end + end + + describe '#invoices_with_forbidden_status?' do + it 'returns true if there are invoices with forbidden statuses' do + FactoryBot.create(:invoice, status: 'packaged', coupon: @coupon1) + expect(@coupon1.send(:invoices_with_forbidden_status?)).to be true + end + end + + describe '#update_with_status' do + it 'updates the coupon attributes without changing active status' do + expect(@coupon1.update_with_status({ name: 'New Name' })).to be true + expect(@coupon1.reload.name).to eq('New Name') + end + end +end diff --git a/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb b/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb index 5493fc5..039c230 100644 --- a/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb +++ b/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb @@ -52,10 +52,9 @@ context 'when the merchant exists' do it 'returns all coupons for the merchant' do get "/api/v1/merchants/#{@merchant.id}/coupons" - + expect(response).to have_http_status(:success) json_response = JSON.parse(response.body, symbolize_names: true) - expect(json_response[:data].length).to eq(2) expect(json_response[:data][0][:attributes][:merchant_id]).to eq(@merchant.id) expect(json_response[:data][1][:attributes][:merchant_id]).to eq(@merchant.id) @@ -68,7 +67,7 @@ expect(response).to have_http_status(:not_found) json_response = JSON.parse(response.body, symbolize_names: true) - expect(json_response[:errors]).to eq(["Your query could not be completed"]) + expect(json_response[:errors]).to eq(['Your query could not be completed']) end end end @@ -101,9 +100,8 @@ it 'returns a 422 error with validation messages' do invalid_params = { coupon: { name: '', code: '', discount_value: nil, discount_type: '' } } post "/api/v1/merchants/#{@merchant.id}/coupons", params: invalid_params - + expect(response).to have_http_status(:unprocessable_entity) - json_response = JSON.parse(response.body, symbolize_names: true) expect(json_response[:errors]).to include( "Name can't be blank", @@ -114,4 +112,41 @@ end end end -end \ No newline at end of file + + describe 'PATCH /api/v1/merchants/:merchant_id/coupons/:id' do + before(:each) do + @coupon = create(:coupon, merchant: @merchant, discount_type: 'percent', discount_value: 20, active: true) + end + + context 'when updating the active status' do + it 'deactivates the coupon successfully' do + patch "/api/v1/merchants/#{@merchant.id}/coupons/#{@coupon.id}", params: { coupon: { active: false } } + + expect(response).to have_http_status(:ok) + json_response = JSON.parse(response.body, symbolize_names: true) + expect(json_response[:data][:attributes][:active]).to be false + expect(@coupon.reload.active).to be false + end + + it 'activates the coupon successfully' do + inactive_coupon = create(:coupon, merchant: @merchant, discount_type: 'percent', discount_value: 15, active: false) + patch "/api/v1/merchants/#{@merchant.id}/coupons/#{inactive_coupon.id}", params: { coupon: { active: true } } + + expect(response).to have_http_status(:ok) + json_response = JSON.parse(response.body, symbolize_names: true) + expect(json_response[:data][:attributes][:active]).to be true + expect(inactive_coupon.reload.active).to be true + end + end + + context 'when the coupon does not exist' do + it 'returns a 404 error' do + patch "/api/v1/merchants/#{@merchant.id}/coupons/9999", params: { coupon: { active: false } } + + expect(response).to have_http_status(:not_found) + json_response = JSON.parse(response.body, symbolize_names: true) + expect(json_response[:errors]).to eq(['Your query could not be completed']) + end + end + end +end From 3f504e4a7a36baf3eaa5192a60e786b868014e9e Mon Sep 17 00:00:00 2001 From: Terra Manning Date: Sun, 10 Nov 2024 14:04:32 -0700 Subject: [PATCH 24/34] refactor: remove unused method and associated tests --- app/models/coupon.rb | 21 +------- spec/models/coupon_spec.rb | 105 +++++++++++++++++++++++++++++-------- 2 files changed, 85 insertions(+), 41 deletions(-) diff --git a/app/models/coupon.rb b/app/models/coupon.rb index 69c4b2c..ad989a4 100644 --- a/app/models/coupon.rb +++ b/app/models/coupon.rb @@ -8,8 +8,6 @@ class Coupon < ApplicationRecord validates :discount_type, inclusion: { in: ["percent", "dollar"] } validate :merchant_cannot_exceed_five_active_coupons, if: :active? - FORBIDDEN_STATUSES = ["shipped", "packaged", "returned"] - def self.by_merchant(merchant_id) where(merchant_id: merchant_id) end @@ -29,29 +27,14 @@ def usage_count end def update_with_status(params) - if params.key?(:active) - update_status(params[:active]) - else - update(params) - end - end - - def update_status(new_status) - if new_status == false && invoices_with_forbidden_status? - errors.add(:base, 'Cannot deactivate coupon with invoices in shipped, packaged, or returned status') - return false - end - update(active: new_status) + update(params) end private - def invoices_with_forbidden_status? - invoices.where(status: FORBIDDEN_STATUSES).exists? - end - def merchant_cannot_exceed_five_active_coupons return unless merchant.present? + if merchant.coupons.where(active: true).count >= 5 errors.add(:base, 'Merchant cannot have more than 5 active coupons') end diff --git a/spec/models/coupon_spec.rb b/spec/models/coupon_spec.rb index 5935414..62fb64b 100644 --- a/spec/models/coupon_spec.rb +++ b/spec/models/coupon_spec.rb @@ -118,37 +118,98 @@ end end - describe '#update_status' do - context 'when trying to deactivate a coupon with forbidden invoices' do - before do - FactoryBot.create(:invoice, status: 'shipped', coupon: @coupon1) - end - - it 'does not allow deactivation' do - expect(@coupon1.update_status(false)).to be false - expect(@coupon1.errors[:base]).to include('Cannot deactivate coupon with invoices in shipped, packaged, or returned status') - end + describe '#update_with_status' do + it 'updates the coupon attributes without changing active status' do + expect(@coupon1.update_with_status({ name: 'New Name' })).to be true + expect(@coupon1.reload.name).to eq('New Name') end + end - it 'activates the coupon if it was previously inactive' do - expect(@coupon2.active).to be false - result = @coupon2.update_status(true) - expect(result).to be_truthy - expect(@coupon2.reload.active).to be true + describe '.by_merchant' do + it 'returns coupons for the specified merchant' do + coupons = Coupon.by_merchant(@merchant1.id) + expect(coupons).to include(@coupon1, @coupon2) + expect(coupons).not_to include(@coupon3) + end + + it 'returns an empty array if no coupons exist for the merchant' do + coupons = Coupon.by_merchant(9999) + expect(coupons).to be_empty end end - describe '#invoices_with_forbidden_status?' do - it 'returns true if there are invoices with forbidden statuses' do - FactoryBot.create(:invoice, status: 'packaged', coupon: @coupon1) - expect(@coupon1.send(:invoices_with_forbidden_status?)).to be true + describe '.create_for_merchant' do + it 'creates a coupon for an existing merchant' do + result = Coupon.create_for_merchant(@merchant1.id, { name: 'New Coupon', code: 'NEWCODE', discount_value: 10, discount_type: 'percent' }) + expect(result).to be_persisted + expect(result.merchant).to eq(@merchant1) + end + + it 'returns nil if the merchant does not exist' do + result = Coupon.create_for_merchant(9999, { name: 'Invalid Coupon', code: 'INVALID', discount_value: 10, discount_type: 'percent' }) + expect(result).to be_nil end end describe '#update_with_status' do - it 'updates the coupon attributes without changing active status' do - expect(@coupon1.update_with_status({ name: 'New Name' })).to be true - expect(@coupon1.reload.name).to eq('New Name') + it 'updates the active status when active param is present' do + result = @coupon1.update_with_status({ active: false }) + expect(result).to be true + expect(@coupon1.reload.active).to be false + end + + it 'updates other attributes without changing active status' do + result = @coupon1.update_with_status({ name: 'Updated Name' }) + expect(result).to be true + expect(@coupon1.reload.name).to eq('Updated Name') + end + end + +describe '#update_with_status' do + it 'updates other attributes without changing active status' do + coupon = Coupon.create!( + name: 'SpecialSavings741562', + code: 'FIXEDCODE123', + discount_value: 20, + discount_type: 'percent', + active: true, + merchant: FactoryBot.create(:merchant) + ) + + expect(coupon.name).to eq('SpecialSavings741562') + + result = coupon.update_with_status({ name: 'New Coupon Name' }) + + expect(result).to be true + expect(coupon.reload.name).to eq('New Coupon Name') + expect(coupon.active).to be true + end +end + + +describe 'validations' do + context 'when a merchant has 5 active coupons' do + before(:each) do + @merchant = FactoryBot.create(:merchant) + FactoryBot.create_list(:coupon, 5, merchant: @merchant, active: true) + end + + it 'does not allow creating a 6th active coupon' do + new_coupon = FactoryBot.build(:coupon, merchant: @merchant, active: true) + expect(new_coupon.valid?).to be false + expect(new_coupon.errors[:base]).to include('Merchant cannot have more than 5 active coupons') + end + + it 'allows creating an inactive coupon' do + inactive_coupon = FactoryBot.build(:coupon, merchant: @merchant, active: false) + expect(inactive_coupon.valid?).to be true + end + + it 'does not allow activating a 6th coupon if there are already 5 active coupons' do + inactive_coupon = FactoryBot.create(:coupon, merchant: @merchant, active: false) + result = inactive_coupon.update_with_status({ active: true }) + expect(result).to be false + expect(inactive_coupon.errors[:base]).to include('Merchant cannot have more than 5 active coupons') end end end From 11b99831fd56306819047bccc68b322db591bc85 Mon Sep 17 00:00:00 2001 From: Terra Manning Date: Sun, 10 Nov 2024 14:43:35 -0700 Subject: [PATCH 25/34] refactor: simplecov 100% for both model and request tests --- .../api/v1/merchants/coupons_controller.rb | 13 +- spec/models/coupon_spec.rb | 97 +------ .../merchant/merchant_coupons_request_spec.rb | 250 +++++++----------- 3 files changed, 115 insertions(+), 245 deletions(-) diff --git a/app/controllers/api/v1/merchants/coupons_controller.rb b/app/controllers/api/v1/merchants/coupons_controller.rb index 0931c02..d4146bd 100644 --- a/app/controllers/api/v1/merchants/coupons_controller.rb +++ b/app/controllers/api/v1/merchants/coupons_controller.rb @@ -29,19 +29,18 @@ def create def update coupon = Coupon.find_by_merchant_and_id(params[:merchant_id], params[:id]) return record_not_found unless coupon - - if coupon.update_with_status(coupon_params) - render json: CouponSerializer.new(coupon), status: :ok - else - render json: ErrorSerializer.format_errors(coupon.errors.full_messages), status: :unprocessable_entity - end + + coupon.update(coupon_params) + render json: CouponSerializer.new(coupon), status: :ok end + private - + def coupon_params params.require(:coupon).permit(:name, :code, :discount_value, :discount_type, :active) end + def record_not_found render json: ErrorSerializer.format_errors(['Your query could not be completed']), status: :not_found diff --git a/spec/models/coupon_spec.rb b/spec/models/coupon_spec.rb index 62fb64b..a16a54d 100644 --- a/spec/models/coupon_spec.rb +++ b/spec/models/coupon_spec.rb @@ -51,25 +51,6 @@ expect(result).to be_nil end end - - context 'when merchant_id or coupon_id is nil' do - it 'returns nil if merchant_id is nil' do - result = Coupon.find_by_merchant_and_id(nil, @coupon1.id) - expect(result).to be_nil - end - - it 'returns nil if coupon_id is nil' do - result = Coupon.find_by_merchant_and_id(@merchant1.id, nil) - expect(result).to be_nil - end - end - - context 'when ids are not integers' do - it 'returns nil if ids are not integers' do - result = Coupon.find_by_merchant_and_id('abc', 'xyz') - expect(result).to be_nil - end - end end describe '#usage_count' do @@ -112,8 +93,8 @@ it 'does not allow activating a 6th coupon if there are already 5 active coupons' do inactive_coupon = FactoryBot.create(:coupon, merchant: @merchant, active: false) - inactive_coupon.active = true - inactive_coupon.save + result = inactive_coupon.update_with_status({ active: true }) + expect(result).to be false expect(inactive_coupon.errors[:base]).to include('Merchant cannot have more than 5 active coupons') end end @@ -123,6 +104,12 @@ expect(@coupon1.update_with_status({ name: 'New Name' })).to be true expect(@coupon1.reload.name).to eq('New Name') end + + it 'updates the active status when active param is present' do + result = @coupon1.update_with_status({ active: false }) + expect(result).to be true + expect(@coupon1.reload.active).to be false + end end describe '.by_merchant' do @@ -131,9 +118,9 @@ expect(coupons).to include(@coupon1, @coupon2) expect(coupons).not_to include(@coupon3) end - + it 'returns an empty array if no coupons exist for the merchant' do - coupons = Coupon.by_merchant(9999) + coupons = Coupon.by_merchant(9999) expect(coupons).to be_empty end end @@ -144,72 +131,10 @@ expect(result).to be_persisted expect(result.merchant).to eq(@merchant1) end - + it 'returns nil if the merchant does not exist' do result = Coupon.create_for_merchant(9999, { name: 'Invalid Coupon', code: 'INVALID', discount_value: 10, discount_type: 'percent' }) expect(result).to be_nil end end - - describe '#update_with_status' do - it 'updates the active status when active param is present' do - result = @coupon1.update_with_status({ active: false }) - expect(result).to be true - expect(@coupon1.reload.active).to be false - end - - it 'updates other attributes without changing active status' do - result = @coupon1.update_with_status({ name: 'Updated Name' }) - expect(result).to be true - expect(@coupon1.reload.name).to eq('Updated Name') - end - end - -describe '#update_with_status' do - it 'updates other attributes without changing active status' do - coupon = Coupon.create!( - name: 'SpecialSavings741562', - code: 'FIXEDCODE123', - discount_value: 20, - discount_type: 'percent', - active: true, - merchant: FactoryBot.create(:merchant) - ) - - expect(coupon.name).to eq('SpecialSavings741562') - - result = coupon.update_with_status({ name: 'New Coupon Name' }) - - expect(result).to be true - expect(coupon.reload.name).to eq('New Coupon Name') - expect(coupon.active).to be true - end -end - - -describe 'validations' do - context 'when a merchant has 5 active coupons' do - before(:each) do - @merchant = FactoryBot.create(:merchant) - FactoryBot.create_list(:coupon, 5, merchant: @merchant, active: true) - end - - it 'does not allow creating a 6th active coupon' do - new_coupon = FactoryBot.build(:coupon, merchant: @merchant, active: true) - expect(new_coupon.valid?).to be false - expect(new_coupon.errors[:base]).to include('Merchant cannot have more than 5 active coupons') - end - - it 'allows creating an inactive coupon' do - inactive_coupon = FactoryBot.build(:coupon, merchant: @merchant, active: false) - expect(inactive_coupon.valid?).to be true - end - - it 'does not allow activating a 6th coupon if there are already 5 active coupons' do - inactive_coupon = FactoryBot.create(:coupon, merchant: @merchant, active: false) - result = inactive_coupon.update_with_status({ active: true }) - expect(result).to be false - expect(inactive_coupon.errors[:base]).to include('Merchant cannot have more than 5 active coupons') - end - end end diff --git a/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb b/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb index 62023f0..a16a54d 100644 --- a/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb +++ b/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb @@ -1,194 +1,140 @@ require 'rails_helper' -RSpec.describe 'Merchant Coupons API', type: :request do +RSpec.describe Coupon, type: :model do before(:each) do - Faker::UniqueGenerator.clear - @merchant = FactoryBot.create(:merchant) - @coupon1 = FactoryBot.create(:coupon, merchant: @merchant, discount_type: 'percent', discount_value: 20) - @coupon2 = FactoryBot.create(:coupon, merchant: @merchant, discount_type: 'dollar', discount_value: 10) + @merchant1 = FactoryBot.create(:merchant) + @merchant2 = FactoryBot.create(:merchant) @customer = FactoryBot.create(:customer) - @invoice1 = FactoryBot.create(:invoice, customer: @customer, merchant: @merchant, coupon: @coupon1) - @invoice2 = FactoryBot.create(:invoice, customer: @customer, merchant: @merchant, coupon: @coupon1) - end - describe 'GET /api/v1/merchants/:merchant_id/coupons/:id' do - context 'when the coupon exists' do - it 'returns the coupon details along with usage count' do - get "/api/v1/merchants/#{@merchant.id}/coupons/#{@coupon1.id}" - - expect(response).to have_http_status(:success) - json_response = JSON.parse(response.body, symbolize_names: true) - expect(json_response[:data][:id]).to eq(@coupon1.id.to_s) - expect(json_response[:data][:attributes][:name]).to eq(@coupon1.name) - expect(json_response[:data][:attributes][:discount_type]).to eq(@coupon1.discount_type) - expect(json_response[:data][:attributes][:discount_value]).to eq(@coupon1.discount_value) - expect(json_response[:data][:attributes][:active]).to eq(@coupon1.active) - expect(json_response[:data][:attributes][:usage_count]).to eq(2) - end - end + @coupon1 = FactoryBot.create(:coupon, merchant: @merchant1, code: 'SAVE10') + @coupon2 = FactoryBot.create(:coupon, merchant: @merchant1, code: 'DISCOUNT20') + @coupon3 = FactoryBot.create(:coupon, merchant: @merchant2, code: 'PROMO15') - context 'when the coupon does not exist' do - it 'returns a 404 error with the correct error message' do - get "/api/v1/merchants/#{@merchant.id}/coupons/9999" + @invoice1 = FactoryBot.create(:invoice, customer: @customer, merchant: @merchant1, coupon: @coupon1) + @invoice2 = FactoryBot.create(:invoice, customer: @customer, merchant: @merchant1, coupon: @coupon1) + @invoice3 = FactoryBot.create(:invoice, customer: @customer, merchant: @merchant1, coupon: @coupon2) + end - expect(response).to have_http_status(:not_found) - json_response = JSON.parse(response.body, symbolize_names: true) - expect(json_response[:errors]).to eq(['Your query could not be completed']) - end - end + describe 'associations' do + it { should belong_to(:merchant) } + it { should have_many(:invoices) } + end - context 'when the merchant does not exist' do - it 'returns a 404 error with the correct error message' do - get "/api/v1/merchants/9999/coupons/#{@coupon1.id}" + describe 'validations' do + subject { FactoryBot.create(:coupon) } - expect(response).to have_http_status(:not_found) - json_response = JSON.parse(response.body, symbolize_names: true) - expect(json_response[:errors]).to eq(['Your query could not be completed']) - end - end + it { should validate_presence_of(:name) } + it { should validate_presence_of(:code) } + it { should validate_uniqueness_of(:code) } + it { should validate_presence_of(:discount_value) } + it { should validate_inclusion_of(:discount_type).in_array(['percent', 'dollar']) } end - describe 'GET /api/v1/merchants/:merchant_id/coupons' do - context 'when the merchant exists' do - it 'returns all coupons for the merchant' do - get "/api/v1/merchants/#{@merchant.id}/coupons" - - expect(response).to have_http_status(:success) - json_response = JSON.parse(response.body, symbolize_names: true) - expect(json_response[:data].length).to eq(2) - expect(json_response[:data][0][:attributes][:merchant_id]).to eq(@merchant.id) - expect(json_response[:data][1][:attributes][:merchant_id]).to eq(@merchant.id) + describe '.find_by_merchant_and_id' do + context 'when the coupon exists for the specified merchant' do + it 'returns the coupon' do + result = Coupon.find_by_merchant_and_id(@merchant1.id, @coupon1.id) + expect(result).to eq(@coupon1) end end - context 'when the merchant does not exist' do - it 'returns a 404 error' do - get "/api/v1/merchants/9999/coupons" + context 'when the coupon does not belong to the specified merchant' do + it 'returns nil' do + result = Coupon.find_by_merchant_and_id(@merchant1.id, @coupon3.id) + expect(result).to be_nil + end + end - expect(response).to have_http_status(:not_found) - json_response = JSON.parse(response.body, symbolize_names: true) - expect(json_response[:errors]).to eq(['Your query could not be completed']) + context 'when the coupon does not exist' do + it 'returns nil' do + result = Coupon.find_by_merchant_and_id(@merchant1.id, 9999) + expect(result).to be_nil end end end - describe 'POST /api/v1/merchants/:merchant_id/coupons' do - context 'when the request is valid' do - it 'creates a new coupon' do - coupon_params = { - coupon: { - name: 'Holiday Discount', - code: 'HOLIDAY2024', - discount_value: 25, - discount_type: 'percent', - active: true - } - } - post "/api/v1/merchants/#{@merchant.id}/coupons", params: coupon_params - - expect(response).to have_http_status(:created) - json_response = JSON.parse(response.body, symbolize_names: true) - expect(json_response[:data][:attributes][:name]).to eq('Holiday Discount') - expect(json_response[:data][:attributes][:code]).to eq('HOLIDAY2024') - expect(json_response[:data][:attributes][:discount_value]).to eq(25) - expect(json_response[:data][:attributes][:discount_type]).to eq('percent') - expect(json_response[:data][:attributes][:active]).to be true - end + describe '#usage_count' do + it 'returns the correct count of associated invoices' do + expect(@coupon1.usage_count).to eq(2) end - context 'when the request is invalid' do - it 'returns a 422 error with validation messages' do - invalid_params = { coupon: { name: '', code: '', discount_value: nil, discount_type: '' } } - post "/api/v1/merchants/#{@merchant.id}/coupons", params: invalid_params + it 'returns 0 when there are no associated invoices' do + new_coupon = FactoryBot.create(:coupon, merchant: @merchant1) + expect(new_coupon.usage_count).to eq(0) + end + end - expect(response).to have_http_status(:unprocessable_entity) - json_response = JSON.parse(response.body, symbolize_names: true) - expect(json_response[:errors]).to include( - "Name can't be blank", - "Code can't be blank", - "Discount value can't be blank", - "Discount type is not included in the list" - ) - end + context 'when the coupon code is not unique' do + it 'is not valid' do + FactoryBot.create(:coupon, merchant: @merchant1, code: 'SAVEMONEY') + duplicate_coupon = FactoryBot.build(:coupon, merchant: @merchant2, code: 'SAVEMONEY') + + expect(duplicate_coupon.valid?).to be_falsey + expect(duplicate_coupon.errors[:code]).to include('has already been taken') end end - describe 'PATCH /api/v1/merchants/:merchant_id/coupons/:id' do + context 'when a merchant has 5 active coupons' do before(:each) do - @coupon = create(:coupon, merchant: @merchant, discount_type: 'percent', discount_value: 20, active: true) + @merchant = FactoryBot.create(:merchant) + FactoryBot.create_list(:coupon, 5, merchant: @merchant, active: true) end - context 'when updating the active status' do - it 'deactivates the coupon successfully' do - patch "/api/v1/merchants/#{@merchant.id}/coupons/#{@coupon.id}", params: { coupon: { active: false } } + it 'does not allow creating a 6th active coupon' do + new_coupon = FactoryBot.build(:coupon, merchant: @merchant, active: true) + expect(new_coupon.valid?).to be_falsey + expect(new_coupon.errors[:base]).to include('Merchant cannot have more than 5 active coupons') + end - expect(response).to have_http_status(:ok) - json_response = JSON.parse(response.body, symbolize_names: true) - expect(json_response[:data][:attributes][:active]).to be false - expect(@coupon.reload.active).to be false - end + it 'allows creating an inactive coupon' do + new_coupon = FactoryBot.build(:coupon, merchant: @merchant, active: false) + expect(new_coupon.valid?).to be_truthy + end - it 'activates the coupon successfully' do - inactive_coupon = create(:coupon, merchant: @merchant, discount_type: 'percent', discount_value: 15, active: false) - patch "/api/v1/merchants/#{@merchant.id}/coupons/#{inactive_coupon.id}", params: { coupon: { active: true } } + it 'does not allow activating a 6th coupon if there are already 5 active coupons' do + inactive_coupon = FactoryBot.create(:coupon, merchant: @merchant, active: false) + result = inactive_coupon.update_with_status({ active: true }) + expect(result).to be false + expect(inactive_coupon.errors[:base]).to include('Merchant cannot have more than 5 active coupons') + end + end - expect(response).to have_http_status(:ok) - json_response = JSON.parse(response.body, symbolize_names: true) - expect(json_response[:data][:attributes][:active]).to be true - expect(inactive_coupon.reload.active).to be true - end + describe '#update_with_status' do + it 'updates the coupon attributes without changing active status' do + expect(@coupon1.update_with_status({ name: 'New Name' })).to be true + expect(@coupon1.reload.name).to eq('New Name') end - context 'when the coupon does not exist' do - it 'returns a 404 error' do - patch "/api/v1/merchants/#{@merchant.id}/coupons/9999", params: { coupon: { active: false } } + it 'updates the active status when active param is present' do + result = @coupon1.update_with_status({ active: false }) + expect(result).to be true + expect(@coupon1.reload.active).to be false + end + end - expect(response).to have_http_status(:not_found) - json_response = JSON.parse(response.body, symbolize_names: true) - expect(json_response[:errors]).to eq(['Your query could not be completed']) - end + describe '.by_merchant' do + it 'returns coupons for the specified merchant' do + coupons = Coupon.by_merchant(@merchant1.id) + expect(coupons).to include(@coupon1, @coupon2) + expect(coupons).not_to include(@coupon3) + end + + it 'returns an empty array if no coupons exist for the merchant' do + coupons = Coupon.by_merchant(9999) + expect(coupons).to be_empty end end - describe 'POST /api/v1/merchants/:merchant_id/coupons' do - context 'when the request is valid' do - it 'creates a new coupon' do - coupon_params = { - coupon: { - name: 'Holiday Discount', - code: 'HOLIDAY2024', - discount_value: 25, - discount_type: 'percent', - active: true - } - } - post "/api/v1/merchants/#{@merchant.id}/coupons", params: coupon_params - - expect(response).to have_http_status(:created) - json_response = JSON.parse(response.body, symbolize_names: true) - expect(json_response[:data][:attributes][:name]).to eq('Holiday Discount') - expect(json_response[:data][:attributes][:code]).to eq('HOLIDAY2024') - expect(json_response[:data][:attributes][:discount_value]).to eq(25) - expect(json_response[:data][:attributes][:discount_type]).to eq('percent') - expect(json_response[:data][:attributes][:active]).to be true - end + describe '.create_for_merchant' do + it 'creates a coupon for an existing merchant' do + result = Coupon.create_for_merchant(@merchant1.id, { name: 'New Coupon', code: 'NEWCODE', discount_value: 10, discount_type: 'percent' }) + expect(result).to be_persisted + expect(result.merchant).to eq(@merchant1) end - context 'when the request is invalid' do - it 'returns a 422 error with validation messages' do - invalid_params = { coupon: { name: '', code: '', discount_value: nil, discount_type: '' } } - post "/api/v1/merchants/#{@merchant.id}/coupons", params: invalid_params - - expect(response).to have_http_status(:unprocessable_entity) - - json_response = JSON.parse(response.body, symbolize_names: true) - expect(json_response[:errors]).to include( - "Name can't be blank", - "Code can't be blank", - "Discount value can't be blank", - "Discount type is not included in the list" - ) - end + it 'returns nil if the merchant does not exist' do + result = Coupon.create_for_merchant(9999, { name: 'Invalid Coupon', code: 'INVALID', discount_value: 10, discount_type: 'percent' }) + expect(result).to be_nil end end end From f80b0bf61a1cb45812af7fb1a157c9904ae86973 Mon Sep 17 00:00:00 2001 From: Terra Manning Date: Mon, 11 Nov 2024 08:11:01 -0700 Subject: [PATCH 26/34] feat: include tests for update endpoints --- .../merchant/merchant_coupons_request_spec.rb | 226 ++++++++++-------- 1 file changed, 124 insertions(+), 102 deletions(-) diff --git a/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb b/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb index a16a54d..c91ad9f 100644 --- a/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb +++ b/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb @@ -1,140 +1,162 @@ require 'rails_helper' -RSpec.describe Coupon, type: :model do +RSpec.describe 'Merchant Coupons API', type: :request do before(:each) do - @merchant1 = FactoryBot.create(:merchant) - @merchant2 = FactoryBot.create(:merchant) + Faker::UniqueGenerator.clear + @merchant = FactoryBot.create(:merchant) + @coupon = FactoryBot.create(:coupon, merchant: @merchant, active: false) + @coupon1 = FactoryBot.create(:coupon, merchant: @merchant, discount_type: 'percent', discount_value: 20) + @coupon2 = FactoryBot.create(:coupon, merchant: @merchant, discount_type: 'dollar', discount_value: 10) @customer = FactoryBot.create(:customer) - - @coupon1 = FactoryBot.create(:coupon, merchant: @merchant1, code: 'SAVE10') - @coupon2 = FactoryBot.create(:coupon, merchant: @merchant1, code: 'DISCOUNT20') - @coupon3 = FactoryBot.create(:coupon, merchant: @merchant2, code: 'PROMO15') - - @invoice1 = FactoryBot.create(:invoice, customer: @customer, merchant: @merchant1, coupon: @coupon1) - @invoice2 = FactoryBot.create(:invoice, customer: @customer, merchant: @merchant1, coupon: @coupon1) - @invoice3 = FactoryBot.create(:invoice, customer: @customer, merchant: @merchant1, coupon: @coupon2) - end - - describe 'associations' do - it { should belong_to(:merchant) } - it { should have_many(:invoices) } + @invoice1 = FactoryBot.create(:invoice, customer: @customer, merchant: @merchant, coupon: @coupon1) + @invoice2 = FactoryBot.create(:invoice, customer: @customer, merchant: @merchant, coupon: @coupon1) end - describe 'validations' do - subject { FactoryBot.create(:coupon) } - - it { should validate_presence_of(:name) } - it { should validate_presence_of(:code) } - it { should validate_uniqueness_of(:code) } - it { should validate_presence_of(:discount_value) } - it { should validate_inclusion_of(:discount_type).in_array(['percent', 'dollar']) } - end - - describe '.find_by_merchant_and_id' do - context 'when the coupon exists for the specified merchant' do - it 'returns the coupon' do - result = Coupon.find_by_merchant_and_id(@merchant1.id, @coupon1.id) - expect(result).to eq(@coupon1) - end - end - - context 'when the coupon does not belong to the specified merchant' do - it 'returns nil' do - result = Coupon.find_by_merchant_and_id(@merchant1.id, @coupon3.id) - expect(result).to be_nil + describe 'GET /api/v1/merchants/:merchant_id/coupons/:id' do + context 'when the coupon exists' do + it 'returns the coupon details along with usage count' do + get "/api/v1/merchants/#{@merchant.id}/coupons/#{@coupon1.id}" + + expect(response).to have_http_status(:success) + json_response = JSON.parse(response.body, symbolize_names: true) + expect(json_response[:data][:id]).to eq(@coupon1.id.to_s) + expect(json_response[:data][:attributes][:name]).to eq(@coupon1.name) + expect(json_response[:data][:attributes][:discount_type]).to eq(@coupon1.discount_type) + expect(json_response[:data][:attributes][:discount_value]).to eq(@coupon1.discount_value) + expect(json_response[:data][:attributes][:active]).to eq(@coupon1.active) + expect(json_response[:data][:attributes][:usage_count]).to eq(2) end end context 'when the coupon does not exist' do - it 'returns nil' do - result = Coupon.find_by_merchant_and_id(@merchant1.id, 9999) - expect(result).to be_nil + it 'returns a 404 error with the correct error message' do + get "/api/v1/merchants/#{@merchant.id}/coupons/9999" + + expect(response).to have_http_status(:not_found) + json_response = JSON.parse(response.body, symbolize_names: true) + expect(json_response[:errors]).to eq(['Your query could not be completed']) end end - end - describe '#usage_count' do - it 'returns the correct count of associated invoices' do - expect(@coupon1.usage_count).to eq(2) - end + context 'when the merchant does not exist' do + it 'returns a 404 error with the correct error message' do + get "/api/v1/merchants/9999/coupons/#{@coupon1.id}" - it 'returns 0 when there are no associated invoices' do - new_coupon = FactoryBot.create(:coupon, merchant: @merchant1) - expect(new_coupon.usage_count).to eq(0) + expect(response).to have_http_status(:not_found) + json_response = JSON.parse(response.body, symbolize_names: true) + expect(json_response[:errors]).to eq(['Your query could not be completed']) + end end end - context 'when the coupon code is not unique' do - it 'is not valid' do - FactoryBot.create(:coupon, merchant: @merchant1, code: 'SAVEMONEY') - duplicate_coupon = FactoryBot.build(:coupon, merchant: @merchant2, code: 'SAVEMONEY') - - expect(duplicate_coupon.valid?).to be_falsey - expect(duplicate_coupon.errors[:code]).to include('has already been taken') + describe 'GET /api/v1/merchants/:merchant_id/coupons' do + context 'when the merchant exists' do + it 'returns all coupons for the merchant' do + get "/api/v1/merchants/#{@merchant.id}/coupons" + + expect(response).to have_http_status(:success) + json_response = JSON.parse(response.body, symbolize_names: true) + + expect(json_response[:data].length).to eq(3) + expect(json_response[:data][0][:attributes][:merchant_id]).to eq(@merchant.id) + expect(json_response[:data][1][:attributes][:merchant_id]).to eq(@merchant.id) + end end - end - context 'when a merchant has 5 active coupons' do - before(:each) do - @merchant = FactoryBot.create(:merchant) - FactoryBot.create_list(:coupon, 5, merchant: @merchant, active: true) - end + context 'when the merchant does not exist' do + it 'returns a 404 error' do + get "/api/v1/merchants/9999/coupons" - it 'does not allow creating a 6th active coupon' do - new_coupon = FactoryBot.build(:coupon, merchant: @merchant, active: true) - expect(new_coupon.valid?).to be_falsey - expect(new_coupon.errors[:base]).to include('Merchant cannot have more than 5 active coupons') + expect(response).to have_http_status(:not_found) + json_response = JSON.parse(response.body, symbolize_names: true) + expect(json_response[:errors]).to eq(["Your query could not be completed"]) + end end + end - it 'allows creating an inactive coupon' do - new_coupon = FactoryBot.build(:coupon, merchant: @merchant, active: false) - expect(new_coupon.valid?).to be_truthy + describe 'POST /api/v1/merchants/:merchant_id/coupons' do + context 'when the request is valid' do + it 'creates a new coupon' do + coupon_params = { + coupon: { + name: 'Holiday Discount', + code: 'HOLIDAY2024', + discount_value: 25, + discount_type: 'percent', + active: true + } + } + post "/api/v1/merchants/#{@merchant.id}/coupons", params: coupon_params + + expect(response).to have_http_status(:created) + json_response = JSON.parse(response.body, symbolize_names: true) + expect(json_response[:data][:attributes][:name]).to eq('Holiday Discount') + expect(json_response[:data][:attributes][:code]).to eq('HOLIDAY2024') + expect(json_response[:data][:attributes][:discount_value]).to eq(25) + expect(json_response[:data][:attributes][:discount_type]).to eq('percent') + expect(json_response[:data][:attributes][:active]).to be true + end end - it 'does not allow activating a 6th coupon if there are already 5 active coupons' do - inactive_coupon = FactoryBot.create(:coupon, merchant: @merchant, active: false) - result = inactive_coupon.update_with_status({ active: true }) - expect(result).to be false - expect(inactive_coupon.errors[:base]).to include('Merchant cannot have more than 5 active coupons') + context 'when the request is invalid' do + it 'returns a 422 error with validation messages' do + invalid_params = { coupon: { name: '', code: '', discount_value: nil, discount_type: '' } } + post "/api/v1/merchants/#{@merchant.id}/coupons", params: invalid_params + + expect(response).to have_http_status(:unprocessable_entity) + + json_response = JSON.parse(response.body, symbolize_names: true) + expect(json_response[:errors]).to include( + "Name can't be blank", + "Code can't be blank", + "Discount value can't be blank", + "Discount type is not included in the list" + ) + end end end - describe '#update_with_status' do - it 'updates the coupon attributes without changing active status' do - expect(@coupon1.update_with_status({ name: 'New Name' })).to be true - expect(@coupon1.reload.name).to eq('New Name') + describe 'PATCH /api/v1/merchants/:merchant_id/coupons/:id' do + context 'when activating the coupon' do + it 'activates the coupon and returns the updated coupon' do + patch "/api/v1/merchants/#{@merchant.id}/coupons/#{@coupon.id}", params: { coupon: { active: true } } + + expect(response).to have_http_status(:ok) + json_response = JSON.parse(response.body, symbolize_names: true) + expect(json_response[:data][:attributes][:active]).to eq(true) + end end - it 'updates the active status when active param is present' do - result = @coupon1.update_with_status({ active: false }) - expect(result).to be true - expect(@coupon1.reload.active).to be false - end - end + context 'when deactivating the coupon' do + before { @coupon.update(active: true) } - describe '.by_merchant' do - it 'returns coupons for the specified merchant' do - coupons = Coupon.by_merchant(@merchant1.id) - expect(coupons).to include(@coupon1, @coupon2) - expect(coupons).not_to include(@coupon3) + it 'deactivates the coupon and returns the updated coupon' do + patch "/api/v1/merchants/#{@merchant.id}/coupons/#{@coupon.id}", params: { coupon: { active: false } } + + expect(response).to have_http_status(:ok) + json_response = JSON.parse(response.body, symbolize_names: true) + expect(json_response[:data][:attributes][:active]).to eq(false) + end end - it 'returns an empty array if no coupons exist for the merchant' do - coupons = Coupon.by_merchant(9999) - expect(coupons).to be_empty - end - end + context 'when the coupon does not exist' do + it 'returns a 404 error with the correct error message' do + patch "/api/v1/merchants/#{@merchant.id}/coupons/9999", params: { coupon: { active: true } } - describe '.create_for_merchant' do - it 'creates a coupon for an existing merchant' do - result = Coupon.create_for_merchant(@merchant1.id, { name: 'New Coupon', code: 'NEWCODE', discount_value: 10, discount_type: 'percent' }) - expect(result).to be_persisted - expect(result.merchant).to eq(@merchant1) + expect(response).to have_http_status(:not_found) + json_response = JSON.parse(response.body, symbolize_names: true) + expect(json_response[:errors]).to eq(['Your query could not be completed']) + end end - it 'returns nil if the merchant does not exist' do - result = Coupon.create_for_merchant(9999, { name: 'Invalid Coupon', code: 'INVALID', discount_value: 10, discount_type: 'percent' }) - expect(result).to be_nil + context 'when the merchant does not exist' do + it 'returns a 404 error with the correct error message' do + patch "/api/v1/merchants/9999/coupons/#{@coupon.id}", params: { coupon: { active: true } } + + expect(response).to have_http_status(:not_found) + json_response = JSON.parse(response.body, symbolize_names: true) + expect(json_response[:errors]).to eq(['Your query could not be completed']) + end end end end From 5a15891ab752322195088c57c306ff93b7b15c93 Mon Sep 17 00:00:00 2001 From: Terra Manning Date: Mon, 11 Nov 2024 08:46:03 -0700 Subject: [PATCH 27/34] feat: modify update to use update_with_status method and obtain full request spec coverage. --- .../api/v1/merchants/coupons_controller.rb | 15 +++++++- app/models/coupon.rb | 2 + spec/models/coupon_spec.rb | 38 +++++++++++++++++++ .../merchant/merchant_coupons_request_spec.rb | 15 ++++++++ 4 files changed, 68 insertions(+), 2 deletions(-) diff --git a/app/controllers/api/v1/merchants/coupons_controller.rb b/app/controllers/api/v1/merchants/coupons_controller.rb index d4146bd..96ea107 100644 --- a/app/controllers/api/v1/merchants/coupons_controller.rb +++ b/app/controllers/api/v1/merchants/coupons_controller.rb @@ -26,12 +26,23 @@ def create end end + # def update + # coupon = Coupon.find_by_merchant_and_id(params[:merchant_id], params[:id]) + # return record_not_found unless coupon + + # coupon.update(coupon_params) + # render json: CouponSerializer.new(coupon), status: :ok + # end + def update coupon = Coupon.find_by_merchant_and_id(params[:merchant_id], params[:id]) return record_not_found unless coupon - coupon.update(coupon_params) - render json: CouponSerializer.new(coupon), status: :ok + if coupon.update_with_status(coupon_params) + render json: CouponSerializer.new(coupon), status: :ok + else + render json: ErrorSerializer.format_errors(coupon.errors.full_messages), status: :unprocessable_entity + end end diff --git a/app/models/coupon.rb b/app/models/coupon.rb index ad989a4..bca16f6 100644 --- a/app/models/coupon.rb +++ b/app/models/coupon.rb @@ -40,3 +40,5 @@ def merchant_cannot_exceed_five_active_coupons end end end + + diff --git a/spec/models/coupon_spec.rb b/spec/models/coupon_spec.rb index a16a54d..ab6a1ac 100644 --- a/spec/models/coupon_spec.rb +++ b/spec/models/coupon_spec.rb @@ -2,10 +2,12 @@ RSpec.describe Coupon, type: :model do before(:each) do + @merchant = FactoryBot.create(:merchant) @merchant1 = FactoryBot.create(:merchant) @merchant2 = FactoryBot.create(:merchant) @customer = FactoryBot.create(:customer) + @coupon = FactoryBot.create(:coupon, merchant: @merchant, active: false, discount_type: 'percent', discount_value: 10) @coupon1 = FactoryBot.create(:coupon, merchant: @merchant1, code: 'SAVE10') @coupon2 = FactoryBot.create(:coupon, merchant: @merchant1, code: 'DISCOUNT20') @coupon3 = FactoryBot.create(:coupon, merchant: @merchant2, code: 'PROMO15') @@ -137,4 +139,40 @@ expect(result).to be_nil end end + + describe '#update_with_status' do + context 'when valid parameters are provided' do + it 'updates the coupon attributes successfully' do + result = @coupon.update_with_status(active: true, discount_value: 20) + + expect(result).to be_truthy + expect(@coupon.reload.active).to eq(true) + expect(@coupon.discount_value).to eq(20) + end + end + + context 'when invalid parameters are provided' do + it 'does not update the coupon and returns false' do + result = @coupon.update_with_status(discount_type: 'invalid_type') + + expect(result).to be_falsey + expect(@coupon.reload.discount_type).not_to eq('invalid_type') + expect(@coupon.errors.full_messages).to include('Discount type is not included in the list') + end + end + + context 'when validations prevent update' do + it 'does not update the coupon when merchant exceeds active coupon limit' do + + 5.times { FactoryBot.create(:coupon, merchant: @merchant, active: true) } + result = @coupon.update_with_status(active: true) + + expect(result).to be_falsey + expect(@coupon.reload.active).to eq(false) + expect(@coupon.errors.full_messages).to include('Merchant cannot have more than 5 active coupons') + end + end + + + end end diff --git a/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb b/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb index c91ad9f..e15c57e 100644 --- a/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb +++ b/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb @@ -158,5 +158,20 @@ expect(json_response[:errors]).to eq(['Your query could not be completed']) end end + + describe 'PATCH /api/v1/merchants/:merchant_id/coupons/:id' do + context 'when trying to activate a coupon but the merchant already has 5 active coupons' do + it 'returns a 422 error with a validation message' do + + 5.times { FactoryBot.create(:coupon, merchant: @merchant, active: true) } + + patch "/api/v1/merchants/#{@merchant.id}/coupons/#{@coupon2.id}", params: { coupon: { active: true } } + + expect(response).to have_http_status(:unprocessable_entity) + json_response = JSON.parse(response.body, symbolize_names: true) + expect(json_response[:errors]).to include('Merchant cannot have more than 5 active coupons') + end + end + end end end From b54bc759afcc2b3e6c1bb13b1b4e5abc3dca5cb2 Mon Sep 17 00:00:00 2001 From: Terra Manning Date: Mon, 11 Nov 2024 09:57:45 -0700 Subject: [PATCH 28/34] feat: functionality for merchant coupon index sorted in postman --- .../api/v1/merchants/coupons_controller.rb | 15 +++++---------- app/models/coupon.rb | 11 +++++++++-- .../v1/merchant/merchant_coupons_request_spec.rb | 4 +++- 3 files changed, 17 insertions(+), 13 deletions(-) diff --git a/app/controllers/api/v1/merchants/coupons_controller.rb b/app/controllers/api/v1/merchants/coupons_controller.rb index 96ea107..0127534 100644 --- a/app/controllers/api/v1/merchants/coupons_controller.rb +++ b/app/controllers/api/v1/merchants/coupons_controller.rb @@ -1,8 +1,10 @@ class Api::V1::Merchants::CouponsController < ApplicationController rescue_from ActiveRecord::RecordNotFound, with: :record_not_found - def index - coupons = Coupon.by_merchant(params[:merchant_id]) + def index + active_status = params[:active] + coupons = Coupon.by_merchant(params[:merchant_id], active_status) + if coupons.present? render json: CouponSerializer.new(coupons), status: :ok else @@ -10,6 +12,7 @@ def index end end + def show coupon = Coupon.find_by_merchant_and_id(params[:merchant_id], params[:id]) return record_not_found unless coupon @@ -25,15 +28,7 @@ def create render json: ErrorSerializer.format_errors(coupon&.errors&.full_messages || ['Invalid parameters']), status: :unprocessable_entity end end - - # def update - # coupon = Coupon.find_by_merchant_and_id(params[:merchant_id], params[:id]) - # return record_not_found unless coupon - # coupon.update(coupon_params) - # render json: CouponSerializer.new(coupon), status: :ok - # end - def update coupon = Coupon.find_by_merchant_and_id(params[:merchant_id], params[:id]) return record_not_found unless coupon diff --git a/app/models/coupon.rb b/app/models/coupon.rb index bca16f6..7a1834e 100644 --- a/app/models/coupon.rb +++ b/app/models/coupon.rb @@ -8,10 +8,17 @@ class Coupon < ApplicationRecord validates :discount_type, inclusion: { in: ["percent", "dollar"] } validate :merchant_cannot_exceed_five_active_coupons, if: :active? - def self.by_merchant(merchant_id) - where(merchant_id: merchant_id) + # def self.by_merchant(merchant_id) + # where(merchant_id: merchant_id) + # end + + def self.by_merchant(merchant_id, active = nil) + coupons = where(merchant_id: merchant_id) + coupons = coupons.where(active: ActiveModel::Type::Boolean.new.cast(active)) if active.present? + coupons end + def self.find_by_merchant_and_id(merchant_id, coupon_id) find_by(merchant_id: merchant_id, id: coupon_id) end diff --git a/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb b/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb index e15c57e..1b93d71 100644 --- a/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb +++ b/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb @@ -10,6 +10,8 @@ @customer = FactoryBot.create(:customer) @invoice1 = FactoryBot.create(:invoice, customer: @customer, merchant: @merchant, coupon: @coupon1) @invoice2 = FactoryBot.create(:invoice, customer: @customer, merchant: @merchant, coupon: @coupon1) + + end describe 'GET /api/v1/merchants/:merchant_id/coupons/:id' do @@ -162,7 +164,7 @@ describe 'PATCH /api/v1/merchants/:merchant_id/coupons/:id' do context 'when trying to activate a coupon but the merchant already has 5 active coupons' do it 'returns a 422 error with a validation message' do - + 5.times { FactoryBot.create(:coupon, merchant: @merchant, active: true) } patch "/api/v1/merchants/#{@merchant.id}/coupons/#{@coupon2.id}", params: { coupon: { active: true } } From ae26c5eaf58842364c3b1d96e1ae87b808d4bf00 Mon Sep 17 00:00:00 2001 From: Terra Manning Date: Mon, 11 Nov 2024 10:26:00 -0700 Subject: [PATCH 29/34] test: refactor by_merchant and include rspec tests --- app/models/coupon.rb | 9 ++------- spec/models/coupon_spec.rb | 40 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 7 deletions(-) diff --git a/app/models/coupon.rb b/app/models/coupon.rb index 7a1834e..642468d 100644 --- a/app/models/coupon.rb +++ b/app/models/coupon.rb @@ -8,17 +8,12 @@ class Coupon < ApplicationRecord validates :discount_type, inclusion: { in: ["percent", "dollar"] } validate :merchant_cannot_exceed_five_active_coupons, if: :active? - # def self.by_merchant(merchant_id) - # where(merchant_id: merchant_id) - # end - - def self.by_merchant(merchant_id, active = nil) + def self.by_merchant(merchant_id, active_status = nil) coupons = where(merchant_id: merchant_id) - coupons = coupons.where(active: ActiveModel::Type::Boolean.new.cast(active)) if active.present? + coupons = coupons.where(active: active_status) unless active_status.nil? coupons end - def self.find_by_merchant_and_id(merchant_id, coupon_id) find_by(merchant_id: merchant_id, id: coupon_id) end diff --git a/spec/models/coupon_spec.rb b/spec/models/coupon_spec.rb index ab6a1ac..9cc1788 100644 --- a/spec/models/coupon_spec.rb +++ b/spec/models/coupon_spec.rb @@ -15,6 +15,10 @@ @invoice1 = FactoryBot.create(:invoice, customer: @customer, merchant: @merchant1, coupon: @coupon1) @invoice2 = FactoryBot.create(:invoice, customer: @customer, merchant: @merchant1, coupon: @coupon1) @invoice3 = FactoryBot.create(:invoice, customer: @customer, merchant: @merchant1, coupon: @coupon2) + + @coupon_active1 = FactoryBot.create(:coupon, merchant: @merchant1, active: true) + @coupon_active2 = FactoryBot.create(:coupon, merchant: @merchant1, active: true) + @coupon_inactive = FactoryBot.create(:coupon, merchant: @merchant1, active: false) end describe 'associations' do @@ -173,6 +177,42 @@ end end + describe '.by_merchant' do + context 'without active status filter' do + it 'returns all coupons for the specified merchant' do + coupons = Coupon.by_merchant(@merchant1.id) + expect(coupons).to include(@coupon_active1, @coupon_active2, @coupon_inactive) + expect(coupons.count).to eq(5) + end + end + + context 'with active=true filter' do + it 'returns only active coupons for the specified merchant' do + coupons = Coupon.by_merchant(@merchant1.id, true) + expect(coupons).to include(@coupon_active1, @coupon_active2) + expect(coupons).not_to include(@coupon_inactive) + expect(coupons.count).to eq(2) + end + end + + describe '.by_merchant' do + context 'with active=false filter' do + it 'returns only inactive coupons for the specified merchant' do + + merchant = FactoryBot.create(:merchant) + + active_coupon = FactoryBot.create(:coupon, merchant: merchant, active: true) + inactive_coupon1 = FactoryBot.create(:coupon, merchant: merchant, active: false) + inactive_coupon2 = FactoryBot.create(:coupon, merchant: merchant, active: false) + coupons = Coupon.by_merchant(merchant.id, false) + + expect(coupons).to include(inactive_coupon1, inactive_coupon2) + expect(coupons).not_to include(active_coupon) + expect(coupons.count).to eq(2) + end + end + end + end end end From 031fea19303f4f120df09858af264cb5c55ef15e Mon Sep 17 00:00:00 2001 From: Terra Manning Date: Mon, 11 Nov 2024 11:11:08 -0700 Subject: [PATCH 30/34] feat: create merchant invoice endpoint --- .../api/v1/merchants/invoices_controller.rb | 16 ++++++----- app/serializers/invoice_serializer.rb | 2 +- .../api/v1/merchant/invoices_request_spec.rb | 27 ++++++++++++++++++- 3 files changed, 37 insertions(+), 8 deletions(-) diff --git a/app/controllers/api/v1/merchants/invoices_controller.rb b/app/controllers/api/v1/merchants/invoices_controller.rb index f44f282..15d27ef 100644 --- a/app/controllers/api/v1/merchants/invoices_controller.rb +++ b/app/controllers/api/v1/merchants/invoices_controller.rb @@ -1,11 +1,15 @@ class Api::V1::Merchants::InvoicesController < ApplicationController def index merchant = Merchant.find(params[:merchant_id]) - if params[:status].present? - invoices = merchant.invoices_filtered_by_status(params[:status]) - else - invoices = merchant.invoices - end - render json: InvoiceSerializer.new(invoices) + + invoices = if params[:status].present? + merchant.invoices_filtered_by_status(params[:status]) + else + merchant.invoices + end + + render json: InvoiceSerializer.new(invoices), status: :ok + rescue ActiveRecord::RecordNotFound + render json: ErrorSerializer.format_errors(['Merchant not found']), status: :not_found end end \ No newline at end of file diff --git a/app/serializers/invoice_serializer.rb b/app/serializers/invoice_serializer.rb index d9a3ea7..91b28c6 100644 --- a/app/serializers/invoice_serializer.rb +++ b/app/serializers/invoice_serializer.rb @@ -1,4 +1,4 @@ class InvoiceSerializer include JSONAPI::Serializer - attributes :merchant_id, :customer_id, :status + attributes :merchant_id, :customer_id, :status, :coupon_id end \ No newline at end of file diff --git a/spec/requests/api/v1/merchant/invoices_request_spec.rb b/spec/requests/api/v1/merchant/invoices_request_spec.rb index cfc041b..4f985d2 100644 --- a/spec/requests/api/v1/merchant/invoices_request_spec.rb +++ b/spec/requests/api/v1/merchant/invoices_request_spec.rb @@ -8,11 +8,14 @@ @customer1 = Customer.create!(first_name: "Papa", last_name: "Gino") @customer2 = Customer.create!(first_name: "Jimmy", last_name: "John") + @coupon1 = Coupon.create!(name: "Discount10", code: "SAVE10", discount_value: 10, discount_type: "percent", merchant: @merchant1) + @coupon2 = Coupon.create!(name: "Discount20", code: "SAVE20", discount_value: 20, discount_type: "dollar", merchant: @merchant2) + @invoice1 = Invoice.create!(customer: @customer1, merchant: @merchant1, status: "packaged") Invoice.create!(customer: @customer1, merchant: @merchant1, status: "shipped") Invoice.create!(customer: @customer1, merchant: @merchant1, status: "shipped") Invoice.create!(customer: @customer1, merchant: @merchant1, status: "shipped") - @invoice2 = Invoice.create!(customer: @customer1, merchant: @merchant2, status: "shipped") + @invoice2 = Invoice.create!(customer: @customer1, merchant: @merchant2, status: "shipped", coupon: @coupon2) end it "should return all invoices for a given merchant when no status param is provided" do @@ -70,4 +73,26 @@ expect(json[:errors]).to be_a Array expect(json[:errors].first).to eq("Couldn't find Merchant with 'id'=100000") end + + it "should only get invoices for the merchant given" do + get "/api/v1/merchants/#{@merchant2.id}/invoices?status=shipped" + + json = JSON.parse(response.body, symbolize_names: true) + + expect(response).to be_successful + expect(json[:data].count).to eq(1) + expect(json[:data][0][:id]).to eq(@invoice2.id.to_s) + expect(json[:data][0][:attributes][:coupon_id]).to eq(@coupon2.id) + end + + it "should return 404 and error message when merchant is not found" do + get "/api/v1/merchants/100000/invoices" + + json = JSON.parse(response.body, symbolize_names: true) + + expect(response).to have_http_status(:not_found) + expect(json[:message]).to eq("Your query could not be completed") + expect(json[:errors]).to be_a Array + expect(json[:errors].first).to eq("Merchant not found") + end end \ No newline at end of file From 39e4e64ffa83c06034be167f4a8885e7b6c5e083 Mon Sep 17 00:00:00 2001 From: Terra Manning Date: Mon, 11 Nov 2024 11:27:24 -0700 Subject: [PATCH 31/34] feat: refactor controller index action to move merchant invoice logic into the merchant model --- .../api/v1/merchants/invoices_controller.rb | 7 +---- app/models/merchant.rb | 4 +++ spec/models/merchant_spec.rb | 29 +++++++++++++++++++ .../requests/api/v1/merchants_request_spec.rb | 1 + 4 files changed, 35 insertions(+), 6 deletions(-) diff --git a/app/controllers/api/v1/merchants/invoices_controller.rb b/app/controllers/api/v1/merchants/invoices_controller.rb index 15d27ef..167db28 100644 --- a/app/controllers/api/v1/merchants/invoices_controller.rb +++ b/app/controllers/api/v1/merchants/invoices_controller.rb @@ -1,12 +1,7 @@ class Api::V1::Merchants::InvoicesController < ApplicationController def index merchant = Merchant.find(params[:merchant_id]) - - invoices = if params[:status].present? - merchant.invoices_filtered_by_status(params[:status]) - else - merchant.invoices - end + invoices = merchant.fetch_invoices(params[:status]) render json: InvoiceSerializer.new(invoices), status: :ok rescue ActiveRecord::RecordNotFound diff --git a/app/models/merchant.rb b/app/models/merchant.rb index 032cfd3..5eba7e0 100644 --- a/app/models/merchant.rb +++ b/app/models/merchant.rb @@ -40,6 +40,10 @@ def invoices_filtered_by_status(status) invoices.where(status: status) end + def fetch_invoices(status = nil) + status.present? ? invoices_filtered_by_status(status) : invoices + end + def self.find_all_by_name(name) Merchant.where("name iLIKE ?", "%#{name}%") end diff --git a/spec/models/merchant_spec.rb b/spec/models/merchant_spec.rb index a38f054..7905f75 100644 --- a/spec/models/merchant_spec.rb +++ b/spec/models/merchant_spec.rb @@ -92,4 +92,33 @@ expect(other_merchant.invoices_filtered_by_status("packaged")).to eq([inv_4_packaged]) end end + + describe '#fetch_invoices' do + it 'returns all invoices when no status is provided' do + merchant = FactoryBot.create(:merchant) + customer = FactoryBot.create(:customer) + + invoice1 = FactoryBot.create(:invoice, merchant: merchant, customer: customer, status: 'packaged') + invoice2 = FactoryBot.create(:invoice, merchant: merchant, customer: customer, status: 'shipped') + + invoices = merchant.fetch_invoices + expect(invoices.count).to eq(2) + expect(invoices).to include(invoice1, invoice2) + end + + it 'filters invoices by status when a status is provided' do + merchant = FactoryBot.create(:merchant) + customer = FactoryBot.create(:customer) + + FactoryBot.create(:invoice, merchant: merchant, customer: customer, status: 'packaged') + shipped_invoice = FactoryBot.create(:invoice, merchant: merchant, customer: customer, status: 'shipped') + + shipped_invoices = merchant.fetch_invoices('shipped') + expect(shipped_invoices.count).to eq(1) + expect(shipped_invoices.first.status).to eq('shipped') + expect(shipped_invoices.first).to eq(shipped_invoice) + end + +end + end diff --git a/spec/requests/api/v1/merchants_request_spec.rb b/spec/requests/api/v1/merchants_request_spec.rb index fcd1526..b5014f4 100644 --- a/spec/requests/api/v1/merchants_request_spec.rb +++ b/spec/requests/api/v1/merchants_request_spec.rb @@ -202,4 +202,5 @@ end end + end \ No newline at end of file From 255ae9a8895aa016355fae256b48c88b8c5df67f Mon Sep 17 00:00:00 2001 From: Terra Manning Date: Mon, 11 Nov 2024 13:00:29 -0700 Subject: [PATCH 32/34] feat: creates any missing tests for the last endpoint --- app/models/merchant.rb | 12 ++++-- app/serializers/merchant_serializer.rb | 8 ++++ spec/models/merchant_spec.rb | 37 +++++++++++++++++-- .../api/v1/merchant/invoices_request_spec.rb | 3 ++ .../requests/api/v1/merchants_request_spec.rb | 2 - 5 files changed, 52 insertions(+), 10 deletions(-) diff --git a/app/models/merchant.rb b/app/models/merchant.rb index 5eba7e0..5f9aba8 100644 --- a/app/models/merchant.rb +++ b/app/models/merchant.rb @@ -7,10 +7,6 @@ class Merchant < ApplicationRecord has_many :transactions, through: :invoices has_many :coupons - # def can_activate_coupon? - # coupons.where(active: true).count < 5 - # end - def self.sorted_by_creation Merchant.order("created_at DESC") end @@ -19,6 +15,14 @@ def self.filter_by_status(status) self.joins(:invoices).where("invoices.status = ?", status).select("distinct merchants.*") end + def coupons_count + coupons.count + end + + def invoice_coupon_count + invoices.where.not(coupon_id: nil).count + end + def item_count items.count end diff --git a/app/serializers/merchant_serializer.rb b/app/serializers/merchant_serializer.rb index 02871ef..09c03a7 100644 --- a/app/serializers/merchant_serializer.rb +++ b/app/serializers/merchant_serializer.rb @@ -7,4 +7,12 @@ class MerchantSerializer } do |merchant| merchant.item_count end + + attribute :coupons_count do |merchant| + merchant.coupons_count + end + + attribute :invoice_coupon_count do |merchant| + merchant.invoice_coupon_count + end end diff --git a/spec/models/merchant_spec.rb b/spec/models/merchant_spec.rb index 7905f75..f62b6ef 100644 --- a/spec/models/merchant_spec.rb +++ b/spec/models/merchant_spec.rb @@ -43,8 +43,40 @@ expect(Merchant.find_all_by_name("ring")).to eq([merchant1, merchant2]) end end + + describe 'instance methods' do + it "#coupons_count should return the total count of coupons for the merchant" do + merchant = create(:merchant) + merchant2 = create(:merchant) + + coupon1 = create(:coupon, merchant: merchant) + coupon2 = create(:coupon, merchant: merchant) + coupon3 = create(:coupon, merchant: merchant2) + + expect(merchant.coupons_count).to eq(2) + expect(merchant2.coupons_count).to eq(1) + end + + it "#invoice_coupon_count should return the count of invoices with coupons applied" do + merchant = create(:merchant) + merchant2 = create(:merchant) + + customer1 = create(:customer) + customer2 = create(:customer) + + coupon1 = create(:coupon, merchant: merchant) + coupon2 = create(:coupon, merchant: merchant2) + + invoice1 = create(:invoice, customer: customer1, merchant: merchant, coupon: coupon1) + invoice2 = create(:invoice, customer: customer2, merchant: merchant, coupon: coupon1) + invoice3 = create(:invoice, customer: customer2, merchant: merchant) + invoice4 = create(:invoice, customer: customer1, merchant: merchant2, coupon: coupon2) + + expect(merchant.invoice_coupon_count).to eq(2) + expect(merchant2.invoice_coupon_count).to eq(1) + end + end - describe "instance methods" do it "#item_count should return the count of items for a merchant" do merchant = Merchant.create!(name: "My merchant") merchant2 = Merchant.create!(name: "My other merchant") @@ -118,7 +150,4 @@ expect(shipped_invoices.first.status).to eq('shipped') expect(shipped_invoices.first).to eq(shipped_invoice) end - -end - end diff --git a/spec/requests/api/v1/merchant/invoices_request_spec.rb b/spec/requests/api/v1/merchant/invoices_request_spec.rb index 4f985d2..bb02a06 100644 --- a/spec/requests/api/v1/merchant/invoices_request_spec.rb +++ b/spec/requests/api/v1/merchant/invoices_request_spec.rb @@ -11,6 +11,9 @@ @coupon1 = Coupon.create!(name: "Discount10", code: "SAVE10", discount_value: 10, discount_type: "percent", merchant: @merchant1) @coupon2 = Coupon.create!(name: "Discount20", code: "SAVE20", discount_value: 20, discount_type: "dollar", merchant: @merchant2) + @item1_merchant1 = Item.create!(name: "Item 1", description: "Item from Merchant 1", unit_price: 100, merchant: @merchant1) + @item2_merchant2 = Item.create!(name: "Item 2", description: "Item from Merchant 2", unit_price: 150, merchant: @merchant2) + @invoice1 = Invoice.create!(customer: @customer1, merchant: @merchant1, status: "packaged") Invoice.create!(customer: @customer1, merchant: @merchant1, status: "shipped") Invoice.create!(customer: @customer1, merchant: @merchant1, status: "shipped") diff --git a/spec/requests/api/v1/merchants_request_spec.rb b/spec/requests/api/v1/merchants_request_spec.rb index b5014f4..9ae2f4b 100644 --- a/spec/requests/api/v1/merchants_request_spec.rb +++ b/spec/requests/api/v1/merchants_request_spec.rb @@ -200,7 +200,5 @@ expect(response).to have_http_status(:no_content) end - end - end \ No newline at end of file From 44e83d4c69862f1758f28204163db5ba438a62bb Mon Sep 17 00:00:00 2001 From: Terra Manning Date: Mon, 11 Nov 2024 13:33:47 -0700 Subject: [PATCH 33/34] fix: indentation and spacing in test files --- spec/models/merchant_spec.rb | 115 +++++++++--------- .../merchant/merchant_coupons_request_spec.rb | 42 ++----- 2 files changed, 69 insertions(+), 88 deletions(-) diff --git a/spec/models/merchant_spec.rb b/spec/models/merchant_spec.rb index f62b6ef..17709ca 100644 --- a/spec/models/merchant_spec.rb +++ b/spec/models/merchant_spec.rb @@ -2,7 +2,7 @@ describe Merchant, type: :model do describe 'validations' do - it { should validate_presence_of(:name)} + it { should validate_presence_of(:name) } end describe 'relationships' do @@ -43,47 +43,43 @@ expect(Merchant.find_all_by_name("ring")).to eq([merchant1, merchant2]) end end - - describe 'instance methods' do - it "#coupons_count should return the total count of coupons for the merchant" do - merchant = create(:merchant) - merchant2 = create(:merchant) - - coupon1 = create(:coupon, merchant: merchant) - coupon2 = create(:coupon, merchant: merchant) - coupon3 = create(:coupon, merchant: merchant2) - - expect(merchant.coupons_count).to eq(2) - expect(merchant2.coupons_count).to eq(1) - end - - it "#invoice_coupon_count should return the count of invoices with coupons applied" do - merchant = create(:merchant) - merchant2 = create(:merchant) - - customer1 = create(:customer) - customer2 = create(:customer) - - coupon1 = create(:coupon, merchant: merchant) - coupon2 = create(:coupon, merchant: merchant2) - - invoice1 = create(:invoice, customer: customer1, merchant: merchant, coupon: coupon1) - invoice2 = create(:invoice, customer: customer2, merchant: merchant, coupon: coupon1) - invoice3 = create(:invoice, customer: customer2, merchant: merchant) - invoice4 = create(:invoice, customer: customer1, merchant: merchant2, coupon: coupon2) - - expect(merchant.invoice_coupon_count).to eq(2) - expect(merchant2.invoice_coupon_count).to eq(1) - end + + describe 'instance methods' do + it "#coupons_count should return the total count of coupons for the merchant" do + merchant = create(:merchant) + merchant2 = create(:merchant) + + coupon1 = create(:coupon, merchant: merchant) + coupon2 = create(:coupon, merchant: merchant) + coupon3 = create(:coupon, merchant: merchant2) + + expect(merchant.coupons_count).to eq(2) + expect(merchant2.coupons_count).to eq(1) + end + + it "#invoice_coupon_count should return the count of invoices with coupons applied" do + merchant = create(:merchant) + merchant2 = create(:merchant) + + customer1 = create(:customer) + customer2 = create(:customer) + + coupon1 = create(:coupon, merchant: merchant) + coupon2 = create(:coupon, merchant: merchant2) + + invoice1 = create(:invoice, customer: customer1, merchant: merchant, coupon: coupon1) + invoice2 = create(:invoice, customer: customer2, merchant: merchant, coupon: coupon1) + invoice3 = create(:invoice, customer: customer2, merchant: merchant) + invoice4 = create(:invoice, customer: customer1, merchant: merchant2, coupon: coupon2) + + expect(merchant.invoice_coupon_count).to eq(2) + expect(merchant2.invoice_coupon_count).to eq(1) end it "#item_count should return the count of items for a merchant" do merchant = Merchant.create!(name: "My merchant") merchant2 = Merchant.create!(name: "My other merchant") - # These FactoryBot methods create lots of test data quickly with random attributes - # The line below is the equivalent of running `merchant.items.create!` 8 times - # In your new tests, you do not need to use FactoryBot unless you'd like to explore it create_list(:item, 8, merchant_id: merchant.id) create_list(:item, 4, merchant_id: merchant2.id) @@ -101,7 +97,6 @@ create_list(:invoice, 3, merchant_id: merchant1.id, customer_id: customer1.id) create_list(:invoice, 2, merchant_id: merchant1.id, customer_id: customer2.id) - create_list(:invoice, 2, merchant_id: merchant2.id, customer_id: customer3.id) expect(merchant1.distinct_customers).to match_array([customer1, customer2]) @@ -112,6 +107,7 @@ merchant = create(:merchant) other_merchant = create(:merchant) customer = create(:customer) + inv_1_shipped = Invoice.create!(status: "shipped", merchant: merchant, customer: customer) inv_2_shipped = Invoice.create!(status: "shipped", merchant: merchant, customer: customer) inv_3_packaged = Invoice.create!(status: "packaged", merchant: merchant, customer: customer) @@ -126,28 +122,29 @@ end describe '#fetch_invoices' do - it 'returns all invoices when no status is provided' do - merchant = FactoryBot.create(:merchant) - customer = FactoryBot.create(:customer) - - invoice1 = FactoryBot.create(:invoice, merchant: merchant, customer: customer, status: 'packaged') - invoice2 = FactoryBot.create(:invoice, merchant: merchant, customer: customer, status: 'shipped') - - invoices = merchant.fetch_invoices - expect(invoices.count).to eq(2) - expect(invoices).to include(invoice1, invoice2) - end + it 'returns all invoices when no status is provided' do + merchant = FactoryBot.create(:merchant) + customer = FactoryBot.create(:customer) - it 'filters invoices by status when a status is provided' do - merchant = FactoryBot.create(:merchant) - customer = FactoryBot.create(:customer) - - FactoryBot.create(:invoice, merchant: merchant, customer: customer, status: 'packaged') - shipped_invoice = FactoryBot.create(:invoice, merchant: merchant, customer: customer, status: 'shipped') - - shipped_invoices = merchant.fetch_invoices('shipped') - expect(shipped_invoices.count).to eq(1) - expect(shipped_invoices.first.status).to eq('shipped') - expect(shipped_invoices.first).to eq(shipped_invoice) + invoice1 = FactoryBot.create(:invoice, merchant: merchant, customer: customer, status: 'packaged') + invoice2 = FactoryBot.create(:invoice, merchant: merchant, customer: customer, status: 'shipped') + + invoices = merchant.fetch_invoices + expect(invoices.count).to eq(2) + expect(invoices).to include(invoice1, invoice2) + end + + it 'filters invoices by status when a status is provided' do + merchant = FactoryBot.create(:merchant) + customer = FactoryBot.create(:customer) + + FactoryBot.create(:invoice, merchant: merchant, customer: customer, status: 'packaged') + shipped_invoice = FactoryBot.create(:invoice, merchant: merchant, customer: customer, status: 'shipped') + + shipped_invoices = merchant.fetch_invoices('shipped') + expect(shipped_invoices.count).to eq(1) + expect(shipped_invoices.first.status).to eq('shipped') + expect(shipped_invoices.first).to eq(shipped_invoice) + end end end diff --git a/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb b/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb index 1b93d71..b7b7106 100644 --- a/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb +++ b/spec/requests/api/v1/merchant/merchant_coupons_request_spec.rb @@ -10,8 +10,6 @@ @customer = FactoryBot.create(:customer) @invoice1 = FactoryBot.create(:invoice, customer: @customer, merchant: @merchant, coupon: @coupon1) @invoice2 = FactoryBot.create(:invoice, customer: @customer, merchant: @merchant, coupon: @coupon1) - - end describe 'GET /api/v1/merchants/:merchant_id/coupons/:id' do @@ -55,7 +53,7 @@ context 'when the merchant exists' do it 'returns all coupons for the merchant' do get "/api/v1/merchants/#{@merchant.id}/coupons" - + expect(response).to have_http_status(:success) json_response = JSON.parse(response.body, symbolize_names: true) @@ -104,9 +102,8 @@ it 'returns a 422 error with validation messages' do invalid_params = { coupon: { name: '', code: '', discount_value: nil, discount_type: '' } } post "/api/v1/merchants/#{@merchant.id}/coupons", params: invalid_params - + expect(response).to have_http_status(:unprocessable_entity) - json_response = JSON.parse(response.body, symbolize_names: true) expect(json_response[:errors]).to include( "Name can't be blank", @@ -122,7 +119,7 @@ context 'when activating the coupon' do it 'activates the coupon and returns the updated coupon' do patch "/api/v1/merchants/#{@merchant.id}/coupons/#{@coupon.id}", params: { coupon: { active: true } } - + expect(response).to have_http_status(:ok) json_response = JSON.parse(response.body, symbolize_names: true) expect(json_response[:data][:attributes][:active]).to eq(true) @@ -134,46 +131,33 @@ it 'deactivates the coupon and returns the updated coupon' do patch "/api/v1/merchants/#{@merchant.id}/coupons/#{@coupon.id}", params: { coupon: { active: false } } - + expect(response).to have_http_status(:ok) json_response = JSON.parse(response.body, symbolize_names: true) expect(json_response[:data][:attributes][:active]).to eq(false) end end - context 'when the coupon does not exist' do - it 'returns a 404 error with the correct error message' do - patch "/api/v1/merchants/#{@merchant.id}/coupons/9999", params: { coupon: { active: true } } + context 'when trying to activate a coupon but the merchant already has 5 active coupons' do + it 'returns a 422 error with a validation message' do + 5.times { FactoryBot.create(:coupon, merchant: @merchant, active: true) } - expect(response).to have_http_status(:not_found) + patch "/api/v1/merchants/#{@merchant.id}/coupons/#{@coupon2.id}", params: { coupon: { active: true } } + + expect(response).to have_http_status(:unprocessable_entity) json_response = JSON.parse(response.body, symbolize_names: true) - expect(json_response[:errors]).to eq(['Your query could not be completed']) + expect(json_response[:errors]).to include('Merchant cannot have more than 5 active coupons') end end - context 'when the merchant does not exist' do + context 'when the coupon does not exist' do it 'returns a 404 error with the correct error message' do - patch "/api/v1/merchants/9999/coupons/#{@coupon.id}", params: { coupon: { active: true } } + patch "/api/v1/merchants/#{@merchant.id}/coupons/9999", params: { coupon: { active: true } } expect(response).to have_http_status(:not_found) json_response = JSON.parse(response.body, symbolize_names: true) expect(json_response[:errors]).to eq(['Your query could not be completed']) end end - - describe 'PATCH /api/v1/merchants/:merchant_id/coupons/:id' do - context 'when trying to activate a coupon but the merchant already has 5 active coupons' do - it 'returns a 422 error with a validation message' do - - 5.times { FactoryBot.create(:coupon, merchant: @merchant, active: true) } - - patch "/api/v1/merchants/#{@merchant.id}/coupons/#{@coupon2.id}", params: { coupon: { active: true } } - - expect(response).to have_http_status(:unprocessable_entity) - json_response = JSON.parse(response.body, symbolize_names: true) - expect(json_response[:errors]).to include('Merchant cannot have more than 5 active coupons') - end - end - end end end From 459e300c343fb51f9d338ae74945cefad9a2f901 Mon Sep 17 00:00:00 2001 From: Terra Manning Date: Mon, 11 Nov 2024 13:36:36 -0700 Subject: [PATCH 34/34] fix: merge changes --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 22c5855..0468961 100644 --- a/README.md +++ b/README.md @@ -17,4 +17,6 @@ This repo uses a pgdump file to seed the database. Your `db:seed` command will p Run your server with `rails s` and you should be able to access endpoints via localhost:3000. -![Alt text](LittleShopDiagram.png) \ No newline at end of file +![Alt text](LittleShopDiagram.png) + +Making edits in order to merge changes to main \ No newline at end of file