From 1f99af550ca02ebaf2cecc6c7bb0e2ac31c90b5e Mon Sep 17 00:00:00 2001
From: weipengfei <2187978347@qq.com>
Date: Mon, 13 Nov 2023 18:42:30 +0800
Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
components/shortPopup.vue | 412 +++++++++++++++++++----
pages/columnGoods/goods_search/index.vue | 19 +-
pages/nongKe/cloud_entrepot/indexb.vue | 322 ++++++++++++------
pages/nongKe/supply_chain/supplierB.vue | 225 ++++++++-----
static/images/icon/all.png | Bin 0 -> 391 bytes
static/images/icon/close.png | Bin 0 -> 2309 bytes
static/images/icon/short.png | Bin 0 -> 1077 bytes
static/images/location.png | Bin 0 -> 682 bytes
8 files changed, 711 insertions(+), 267 deletions(-)
create mode 100644 static/images/icon/all.png
create mode 100644 static/images/icon/close.png
create mode 100644 static/images/icon/short.png
create mode 100644 static/images/location.png
diff --git a/components/shortPopup.vue b/components/shortPopup.vue
index 3ce2623..1bdc649 100644
--- a/components/shortPopup.vue
+++ b/components/shortPopup.vue
@@ -1,38 +1,57 @@
-
+
-
-
-
-
-
-
- ¥10.00
- 订货价
-
- 商品名称
- 店铺名称
-
- 规格选中
-
- 规格1
- 规格2
-
-
- 购买数量
- 1
-
-
- 商品库存 200
-
-
-
-
- 采购车
+
+
+
+
+
+
+
+
+
+
+
- 加入采购清单
+
+
+ ¥{{leftPrice}}.{{rightPrice}}
+
+ 订货价
+
+ {{datas.store_name}}
+
+
+
+ {{datas.merchant.mer_name}}
+
+
+
+ 规格选中
+
+ {{item||'默认'}}
+
+
+ 购买数量
+
+ -
+
+ +
+
+
+
+ 商品库存 {{(sku[sku_key] && sku[sku_key].stock)||change.stock}}
+
+
+
+
+
+
+ 采购车
+ {{goodsNum}}
+ 加入采购清单
@@ -40,20 +59,158 @@
diff --git a/pages/nongKe/cloud_entrepot/indexb.vue b/pages/nongKe/cloud_entrepot/indexb.vue
index 46f403c..84d297a 100644
--- a/pages/nongKe/cloud_entrepot/indexb.vue
+++ b/pages/nongKe/cloud_entrepot/indexb.vue
@@ -4,23 +4,23 @@
-
-
-
+
-
-
- 供销综合云市场
+
+
+
+ 供销综合云市场
+
+
+ 供销综合云商品
+
-
- 供销综合云商品
-
-
{{street||'定位中'}}
-
-
+
+
-
+
+ 全
+ 部
+
+
@@ -69,15 +74,20 @@
- {{item.cate_name}}
+ {{item.cate_name}}
- 综合
+ 综合
- 销量
- 价格
+ 销量
+
+ 价格
+
+
+
+
@@ -97,7 +107,7 @@
{{item.product.store_info}}
-
+
¥{{ item.product.price.split('.')[0] }}.{{item.product.price.split('.')[1]}}
@@ -148,7 +158,22 @@
@cancel="showPicker = false" @change="changeHandler" keyName="name">
-
+
+
+
+
+
+
+
+
+
+
@@ -201,6 +226,7 @@
import Cache from '@/utils/cache';
import shortPopup from "@/components/shortPopup.vue"
+ import { Toast } from '../../../libs/uniApi';
const app = getApp();
export default {
components: {
@@ -238,6 +264,7 @@
street: "",
showPicker: false,
status: "loadmore",
+ price_order: 'price_asc', //价格排序方式(升降), price_asc, price_desc
// 下拉菜单
downMenu: [{
title: '默认',
@@ -260,15 +287,13 @@
order: 'location'
}
],
- // 是否第一个
- firstKey: 0,
// 商铺列表
storeList: [],
storeParam: {
keyword: '',
page: 1,
limit: 10,
- order: 'location',
+ order: '',
category_id: '',
type_id: '',
street_id: '',
@@ -276,8 +301,8 @@
},
storeKey: 0,
storeScroll: true,
- changeCategory: '', // 当前选中一级分类
- category_tow_id: '', //当前选中二级分类id
+ merchant: '', // 当前选中一级分类
+ merchantTow: '', //当前选中二级分类
mer_id: '',
sortId: '',
price_on: '',
@@ -299,8 +324,8 @@
goodsNum: 0,
totalMoney: 0,
goodsList: [], //商品列表
- changeItem: null, //选择的商品
showLoading: false, //是否显示加载
+ allShow: false, //是否显示全部类型弹窗
};
},
async onLoad(options) {
@@ -320,6 +345,7 @@
this.storeParam.type_id = options.type_id && options.type_id.split(',').toString() || ''
this.storeParam.category_id = options.cate_id && options.cate_id.split(',').toString() || ''
this.storeList = [];
+ this.showLoading = true;
await this.getCloundShop();
this.cartFn();
if (this.mer_location == 1) {
@@ -371,21 +397,9 @@
type: 2
})
this.cloudList = data;
- this.changeCategory = this.cloudList[0];
- await townCloud({
- street_code: this.street_id,
- category_id: this.category_id,
- location: this.latitude + ',' + this.longitude
- }).then(res => {
- this.trnList = []
- this.goodsList = res.data.list;
- this.goodsList.forEach(item => {
- this.trnList.push({
- left: 0,
- bottom: 0
- })
- })
- })
+ this.merchant = this.cloudList[0];
+ this.merchantTow = this.merchant?.children[0];
+ this.storeParam.category_id = this.merchantTow.store_category_id;
return null;
},
selectLocation() {
@@ -439,10 +453,8 @@
},
onInputConfirm() {
-
this.showSerch = false
this.searchSubmit()
-
},
// 对象转数组
objToArr(data) {
@@ -575,7 +587,10 @@
},
selfLocation() {
let self = this
- if (uni.getStorageSync('RejectTarget')) return;
+ if (uni.getStorageSync('RejectTarget')){
+ this.getStoreList();
+ return;
+ }
if (this.$store?.state?.storage?.location?.lat) {
this.latitude = this.$store?.state?.storage?.location?.lat;
this.longitude = this.$store?.state?.storage?.location?.long;
@@ -589,11 +604,13 @@
this.recommend_address = res.data.address.length > 4 ? res.data.address
.slice(0, 4) + '...' :
res.data.address;
+ this.getStoreList();
}).catch(err => {
uni.showToast({
title: err,
icon: 'none'
})
+ this.getStoreList();
})
} else uni.getLocation({
type: 'gcj02',
@@ -618,11 +635,13 @@
this.recommend_address = res.data.address.length > 4 ? res.data.address
.slice(0, 4) + '...' :
res.data.address
+ this.getStoreList();
}).catch(err => {
uni.showToast({
title: err,
icon: 'none'
})
+ this.getStoreList();
})
},
fail: (res) => {
@@ -651,20 +670,23 @@
},
// 搜索
searchSubmit: function() {
+ console.log('搜索', this.storeParam.keyword);
let that = this;
that.$set(that.storeParam, 'keyword', this.storeParam.keyword);
- this.set_where(this.firstKey)
+ this.set_where('')
this.showSerch = false
},
//点击事件处理
set_where: function(e) {
if (this.loading) return
this.storeList = []
- this.firstKey = e
this.storeParam.page = 1
// this.storeParam.order = this.downMenu[e].order
- this.storeParam.order = 'location' //使用距离进行排序
+ // this.storeParam.order = 'location' //使用距离进行排序
+ this.storeParam.order = e //选择排序方式
this.getStoreList();
+ if(e=='price_asc') return this.price_order = 'price_desc';
+ if(e=='price_desc') return this.price_order = 'price_asc';
},
backjJump() {
uni.navigateBack({
@@ -672,34 +694,39 @@
})
},
// 点击商品一级分类
- changeMerchant(item) {
- this.changeMerchant = item;
- this.storeParam.category_id = this.category_id;
+ changeMerchant(item, type=false) {
+ this.merchant = item;
+ this.merchantTow = item.children[0];
+ this.storeParam.category_id = this.merchant.store_category_id;
this.storeParam.page = 1;
this.goodsList = [];
+ if(type) this.$refs.allRef.close();
this.getStoreList()
},
// 点击商品二级分类
- changeMerchantTow(){
- this.storeParam.category_id = this.category_id;
+ changeMerchantTow(item){
+ this.merchantTow = item;
+ this.storeParam.category_id = this.merchantTow.store_category_id;
this.storeParam.page = 1;
this.getStoreList()
},
// 商品列表
- getStoreList() {
- console.log('加载商品');
+ getStoreList(load=false) {
this.showLoading = true
this.status = "loading"
- this.storeParam.page = 1;
+ if(!load) {
+ this.storeParam.page = 1;
+ this.goodsList = [];
+ }
townCloud({
street_code: this.street_id,
- category_id: this.category_id || "22",
- // order: this.storeParam.order,
- keyword: this.keyword,
+ category_id: this.storeParam.category_id,
+ order: this.storeParam.order,
+ keyword: this.storeParam.keyword,
page: this.storeParam.page,
location: this.latitude+','+this.longitude,
}).then(res => {
- this.goodsList = res.data.list
+ this.goodsList = [...this.goodsList, ...res.data.list]
this.showLoading = false
this.goodsList.forEach(item => {
this.trnList.push({
@@ -708,7 +735,7 @@
})
})
}).catch(e=>{
- console.log(e);
+ Toast(e.msg||e.message||e)
this.showLoading = false;
})
},
@@ -717,11 +744,14 @@
},
loadMoreRight() {
// 加载更多右侧内容的逻辑
- console.log('右侧');
+ this.storeParam.page++;
+ this.getStoreList(true);
},
// 购物车信息
cartFn() {
- getCartList().then(res => {
+ getCartList({
+ source: 103
+ }).then(res => {
this.totalMoney = 0
this.cartList = res.data.list
this.cartList.forEach(e => {
@@ -731,14 +761,35 @@
})
this.totalMoney = this.totalMoney.toFixed(2)
})
- getCartCounts().then(res => {
+ getCartCounts({
+ source: 103
+ }).then(res => {
this.goodsNum = res.data[0].count
})
},
// 点击商品
clickProduct(data){
- this.changeItem = data;
+ this.$refs.shortPopupRef.setDatas(data, this.goodsNum);
this.$refs.shortPopupRef.open();
+ },
+ // 点击全部
+ showAllRef(){
+ this.$refs.allRef.open();
+ },
+ changeAllRef(e){
+ this.allShow = e.show;
+ },
+ // 搜索
+ navToSearch(){
+ uni.navigateTo({
+ url: `/pages/columnGoods/goods_search/index?back=${true}&searchVal=${this.storeParam.keyword}`,
+ success:()=> {
+ uni.$once('searchValue', (e)=>{
+ this.storeParam.keyword = e;
+ this.searchSubmit();
+ })
+ }
+ })
}
},
//刷新
@@ -748,32 +799,16 @@
onShow() {
this.showSelect = false
},
- //上划加载更多
- onReachBottom() {
- this.storeParam.page += 1
-
- let rqData = {
- keyword: this.storeParam.keyword,
- page: this.storeParam.page,
- limit: 10,
- order: this.storeParam.order,
- category_id: this.storeParam.category_id,
- type_id: this.storeParam.type_id,
- street_id: this.storeParam.street_id,
- credit_buy: this.credit_buy
+ // 页面返回
+ onBackPress() {
+ if(this.$refs.shortPopupRef.isShow){
+ this.$refs.shortPopupRef.close();
+ return true;
+ } else if(this.allShow){
+ this.$refs.allRef.close();
+ return true;
}
- if (this.latitude) {
- rqData.location = this.latitude + ',' + this.longitude
- }
- // console.log(rqData)
- getStoreList(rqData).then(res => {
- console.log(res.data.list.length);
- if (res.data.list.length < rqData.limit) {
- this.status = "nomore"
- }
- this.count = res.data.count
- this.storeList.push(...res.data.list)
- })
+ else return false;
}
}
@@ -788,6 +823,64 @@
page {
background-color: #f5f5f5;
}
+
+ .all_ref{
+ height: 100vh;
+ width: 510rpx;
+ background-color: #fff;
+ padding: 30rpx;
+ .header{
+ height: 100rpx;
+ font-size: 33rpx;
+ font-weight: bold;
+ display: flex;
+ align-items: center;
+ }
+ .all_list{
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: flex-start;
+ align-items: flex-start;
+ }
+ .menu_li {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ width: 150rpx;
+ height: 150rpx;
+ overflow: hidden;
+
+ // width: 120rpx;
+ // display: inline-block;
+ .image {
+ border-radius: 50%;
+ border: 5rpx solid #fff;
+ }
+
+ .li_text {
+ width: 100%;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ text-align: center;
+ padding: 4rpx 10rpx;
+ }
+ }
+
+ .menu_li_on {
+ .image {
+ border: 5rpx solid #ff6d20;
+ border-radius: 50%;
+ }
+
+ .li_text {
+ background-color: #ff6d20;
+ border-radius: 2em;
+ color: #fff;
+ padding: 4rpx 10rpx;
+ }
+ }
+ }
.com_name {
font-size: 33.29rpx;
@@ -833,17 +926,34 @@
.content {
flex: 1;
- padding: 20rpx;
- padding-top: 0;
+ padding: 0 20rpx 10rpx 20rpx;
}
.menu_cls {
- background-color: white;
+ // background-color: white;
// height: 199.77rpx;
border-radius: 21.03rpx 21.03rpx 21.03rpx 21.03rpx;
- padding: 20rpx 20rpx 0 20rpx;
+ padding: 10rpx 70rpx 0 0;
font-size: 26.29rpx;
- height: 220rpx;
+ height: 155rpx;
+ overflow: hidden;
+ position: relative;
+
+ .all{
+ position: absolute;
+ top: 0;
+ right: 0;
+ padding: 0 15rpx;
+ height: 100%;
+ display: flex;
+ justify-content: center;
+ flex-direction: column;
+ background-color: #f5f5f5;
+ image{
+ width: 30rpx;
+ height: 30rpx;
+ }
+ }
.menu_li {
margin-right: 20rpx;
@@ -858,6 +968,7 @@
// width: 120rpx;
// display: inline-block;
.image {
+ border-radius: 50%;
border: 5rpx solid #fff;
}
@@ -889,7 +1000,7 @@
.container {
display: flex;
- height: calc(100vh - 400rpx - var(--status-bar-height));
+ height: calc(100vh - 320rpx - var(--status-bar-height));
.left-panel {
width: 180rpx;
@@ -936,7 +1047,7 @@
background-color: #fff;
.right-panel-head {
- height: 100rpx;
+ height: 70rpx;
box-sizing: border-box;
display: flex;
justify-content: space-between;
@@ -946,11 +1057,18 @@
view {
display: flex;
+ align-items: center;
margin-left: 40rpx;
}
.active {
color: #333;
+ font-weight: bold;
+ }
+
+ .icon{
+ height: 22rpx;
+ width: 18rpx;
}
}
@@ -962,8 +1080,8 @@
display: flex;
.image {
- height: 175.23rpx;
- width: 175.23rpx;
+ height: 145.23rpx;
+ width: 145.23rpx;
border-radius: 21.03rpx 21.03rpx 21.03rpx 21.03rpx;
margin-right: 20rpx;
flex-shrink: 0;
@@ -1128,7 +1246,7 @@
}
.hot_serch {
- height: 20rpx;
+ height: 0rpx;
}
.productList .search .input {
@@ -1624,7 +1742,7 @@
}
.sswz {
- margin-top: 30rpx;
+ margin-top: 10rpx;
display: flex;
justify-content: space-between;
box-sizing: border-box;
diff --git a/pages/nongKe/supply_chain/supplierB.vue b/pages/nongKe/supply_chain/supplierB.vue
index cff2b73..5175013 100644
--- a/pages/nongKe/supply_chain/supplierB.vue
+++ b/pages/nongKe/supply_chain/supplierB.vue
@@ -7,21 +7,23 @@
-
+
-
-
- 供销综合云市场
-
-
- 供销综合云商品
-
-
+
+
+
+ 供销综合云市场
+
+
+ 供销综合云商品
+
+
+
{{street||'定位中'}}
@@ -46,8 +48,8 @@
-->
-
-
+
+
@@ -111,47 +113,53 @@
-
-
-
-
-
- {{item.mer_name}}
- {{item.type_name}}
-
-
-
-
-
-
-
-
- {{item.service_score}}
- 月销{{item.sales}}
- {{item.distance}}
-
-
-
- {{item.service_phone}}
-
- {{item.street_name}}
-
-
-
- {{item.mer_take_time[0]}}-{{item.mer_take_time[1]}}
-
-
-
- {{item.mer_address}}
-
-
+
+
+
+ {{item.mer_name}}
+ {{item.type_name}}
+
+ 月销{{item.sales}}
+
+
+
+
+
+
+
+
+ {{item.street_name}}
+
+
+
+
+
+
+
+
+
+
+ {{item.service_score}}
+ {{item.distance}}
+
+
+
+ {{item.service_phone}}
+
+ {{item.mer_take_time[0]}}-{{item.mer_take_time[1]}}
+
+
+
+ {{item.mer_address}}
+
+
+
@@ -843,6 +851,17 @@
this.storeParam.category_id = this.merchant_category_id;
this.storeParam.page = 1;
this.storeMerchantList()
+ },
+ navToSearch(){
+ uni.navigateTo({
+ url: `/pages/columnGoods/goods_search/index?back=${true}&searchVal=${this.storeParam.keyword}`,
+ success:()=> {
+ uni.$once('searchValue', (e)=>{
+ this.storeParam.keyword = e;
+ this.searchSubmit();
+ })
+ }
+ })
}
},
//刷新
@@ -896,12 +915,11 @@
font-size: 33.29rpx;
// background-color: red;
// max-width: 45vw;
- max-width: 40vw;
- white-space: nowrap;
- /* 防止文字换行 */
- overflow: hidden;
- /* 超出部分隐藏 */
- text-overflow: ellipsis;
+ // white-space: nowrap;
+ // /* 防止文字换行 */
+ // overflow: hidden;
+ // /* 超出部分隐藏 */
+ // text-overflow: ellipsis;
/* 使用省略号表示溢出的内容 */
// width: 200px;
/* 可根据实际情况调整容器宽度 */
@@ -1011,40 +1029,73 @@
background-color: white;
padding: 20rpx;
// border-radius: 20rpx;
- display: flex;
+ // display: flex;
border-radius: 21rpx 21rpx 21rpx 21rpx;
// align-items: center;
-
- .left {
- margin-right: 20rpx;
- width: 158rpx;
- height: 158rpx;
- border-radius: 20rpx;
- overflow: hidden;
- }
-
- .right {
- flex: 1;
- color: #737373;
+ .head{
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ width: 100%;
.head {
font-weight: bold;
// color: red;
color: #333;
-
}
+ }
- .li {
+ .left {
+ margin-right: 20rpx;
+ width: 140.19rpx;
+ height: 140.19rpx;
+ border-radius: 20rpx;
+ overflow: hidden;
+ position: relative;
+ .left_text{
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ background-color: rgba(#000, 0.5);
width: 100%;
- display: flex;
- font-size: 28.04rpx;
- margin-bottom: 10rpx;
- align-items: center;
-
- text {
- margin: 0 20rpx 0 5rpx;
- }
- }
+ font-size: 21rpx;
+ font-weight: 400;
+ color: #FFFFFF;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ image{
+ width: 21.03rpx;
+ height: 21.03rpx;
+ flex-shrink: 0;
+ }
+ view{
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ }
+ }
}
+
+ .right {
+ flex: 1;
+ display: flex;
+ flex-direction: column;
+ justify-content: space-evenly;
+ color: #737373;
+ }
+
+
+ .li {
+ width: 100%;
+ display: flex;
+ font-size: 28.04rpx;
+ margin-bottom: 10rpx;
+ align-items: center;
+
+ text {
+ margin: 0 20rpx 0 5rpx;
+ }
+ }
}
}
@@ -1596,7 +1647,7 @@
}
.sswz {
- margin-top: 30rpx;
+ margin-top: 10rpx;
display: flex;
justify-content: space-between;
box-sizing: border-box;
diff --git a/static/images/icon/all.png b/static/images/icon/all.png
new file mode 100644
index 0000000000000000000000000000000000000000..fa4b98ffcb114ed15df5856d9c7588b3b084fcae
GIT binary patch
literal 391
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
literal 0
HcmV?d00001
diff --git a/static/images/icon/short.png b/static/images/icon/short.png
new file mode 100644
index 0000000000000000000000000000000000000000..9821ac0b8adaf84c8ad37b2c10f3c49564e45825
GIT binary patch
literal 1077
zcmV-51j_q~P)Px&?@2^KR9HvtS6^rxMHv6Sxjnf+A~mrPF@-BsB&Xc%&g8*BOWOyj4;3G@AXu@b
z5egP8*cZW4MFj;#d=L>Vjab2A9+WD!C>Su%g3fmv2uHy}PWs@fB_1|#OLDuPjO@vB
z*}L7#-9v=T+s^*xH^2G*&LC{Dfm=)uYzs>ANTP)t$JvjFhXLT;B(kLc%zR^geSLOm
zY3cV)*sg*c$2lQ{_&8~!9{<-GjfPXHRBCbSx(TwBQnvtLyvGgGz~9hXpY2JI<2X+W
zA?C~?WxH{-pA{nWMPFjV#X;a7*>`8>Apn>G
zfM%o7xTjL7tVX#vxJ*iU2obM@pfmF$e_YL?bqx@P`x3>ly3Wn%{eSPwBjV*Sj*b%1
zXGwxSMZ}{fm;qpy*82AHfqZVf&-AYW)OOETy?j2O8yy|}6A_1*`63ZLn@0DA$T=KKC+tNxTq
zrH3rba!o0S5G*wsjp>#JipAoC*=*KeaxDxq*FDdhY_*C)p)fu)G-L|oI5S@-qUj_H
z9Ye$mVbE0(@gg&ufHw0x!ucy<(KJ>31|rV2V}c+!FN8P|Zf5${EHitEXfkXfo`(;RCIgay^5aLu6!_04&%jJK2pc%Gp&tx*07fm9xtPTM05Yb1b
z7Nr&RAI`Sz9rb$Mt5&O~48#tDSzB9cwr5imY%u0KsV8>2ei#d#W9B9iz1B&{X6D1T
zWc76YD3wZkEz2_5W`cH_h^}vD^Y%4T%103Knwf7loBI|Q7Z*~w%(m?VnM~#f1NMFY
zpzFHxgAkO4H`Zlo7H&ph8s2R|Nulunvk)^sO+=SA6EiVc_Kayo-I68NLg5wSH*;qh
zgphWQu;K2CE2JIYWlE{%0KhyFquqTF`b@i+(OQ2JN7nV_YTLFggm?k~@`F$U0M#G}
vzH(jHTv1|2;@f^eLQ>Og3raH8mb1`5h_C-NJk&Yc00000NkvXXu0mjfBm?@J
literal 0
HcmV?d00001
diff --git a/static/images/location.png b/static/images/location.png
new file mode 100644
index 0000000000000000000000000000000000000000..08448eef66e390715901b7a724657357517bfca4
GIT binary patch
literal 682
zcmV;b0#*HqP)Px%WJyFpR7gv;mNBT0VHC!HPZ#@qZ882Bsu^?~Bn3V0#TP1FY-_5};j@UUh+V0@zN_XTXvHS$+aGN($It
z)(7w)uNzdt@_k0q=+FSRQ|mX43)g`Q`e=F{m~5k7%h^RqC)#}b
z0P@OEb*}{m!81&bczZ>A@Eu+z(p<
z)@DzO&tqTK84g$^+I{8f1F|u&+#b6nI?H
zec4W}-<32++iGch8}O(`%WuFANpsD#Y_9;KV|my}0LFnENww`l6~K1(LCO^ylXS1E
z`L?S$8Vf)!-pxWuN_~te5>A&i*B+BnWg+biKsAQsw9dhKCW>&)(
z->~qCq}=UP)3t@y*~!T+%t#3{OtENBIG^dwkYy()