From 037c03f977a4f809583f3e5be52926aeafad299f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BD=97=E5=AE=B6=E7=82=9C?= <2029049582@qq.com> Date: Thu, 8 May 2025 12:41:42 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B1=95=E7=A4=BA=E7=89=8C=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../extend/majiang/fuzhou/EXMainView.lua | 13 +- .../extend/majiang/jinxi/EXGameController.lua | 16 +- .../extend/majiang/jinxi/EXMainView.lua | 50 +++--- .../extend/majiang/jinxi/GameEvent.lua | 19 +- .../extend/majiang/jinxi/Protocol.lua | 20 ++- .../extend/majiang/lichuan/EXMainView.lua | 11 +- .../extend/majiang/nancheng/EXMainView.lua | 11 +- .../extend/poker/runfast/CardCheck.lua | 58 ++++-- .../poker/runfast/RunFast_GameController.lua | 170 ++++++++---------- .../extend/poker/runfast/RunFast_MainView.lua | 2 + .../main_project/main/majiang/MJMainView.lua | 7 +- .../main_majiang/ui/main_majiang_fui.bytes | Bin 328789 -> 330090 bytes 12 files changed, 203 insertions(+), 174 deletions(-) diff --git a/lua_probject/extend_project/extend/majiang/fuzhou/EXMainView.lua b/lua_probject/extend_project/extend/majiang/fuzhou/EXMainView.lua index 87b5834a..9503caa8 100644 --- a/lua_probject/extend_project/extend/majiang/fuzhou/EXMainView.lua +++ b/lua_probject/extend_project/extend/majiang/fuzhou/EXMainView.lua @@ -46,8 +46,6 @@ function M:InitView(url) end self._hu_tip = HuTipView.new(self) - self._view:GetChild('wanfa_text').text = room.room_config.people_num .. '人个旧麻将 ' .. room.score_times .. '倍' - self.selectLaiziBtn = self._view:GetChild('selectlaizi') self.Laizi1Btn = self._view:GetChild('selectgang1') self.Laizi2Btn = self._view:GetChild('selectgang2') @@ -154,6 +152,10 @@ function M:InitView(url) if room.playing or room.curren_round > 0 then self:ReloadRoom() end + + ---------为了下次复现出牌情况 + self._viewText_testName = self._view:GetChild('text_testName') + self._viewText_testName.text = 0 end function M:__BuGang(cardInfo, callback) @@ -310,6 +312,7 @@ function M:EventInit() _gamectr:AddEventListener(TX_GameEvent.OutHint, function(...) local info = self._player_card_info[self:GetPos(_room.self_player.seat)] + self._viewText_testName.text = tonumber(self._viewText_testName.text) + 1 info:UpdateHandCard(true) end) @@ -972,12 +975,10 @@ function M:PlayerChangeLineState() end function M:UpdateCardBox(seat) - local index = seat + local index = seat - 1 local people_num = self._room.room_config.people_num if people_num == 2 and seat == 2 then - index = 3 - elseif people_num == 3 and seat == 3 then - index = 4 + index = 2 end self._ctr_cardbox.selectedIndex = index end diff --git a/lua_probject/extend_project/extend/majiang/jinxi/EXGameController.lua b/lua_probject/extend_project/extend/majiang/jinxi/EXGameController.lua index c36054a2..128f16cc 100644 --- a/lua_probject/extend_project/extend/majiang/jinxi/EXGameController.lua +++ b/lua_probject/extend_project/extend/majiang/jinxi/EXGameController.lua @@ -36,13 +36,15 @@ function M:init(name) self._eventmap[TX_Protocol.GAME_EVT_GANGZI] = self.OnEventGangCards self._eventmap[TX_Protocol.GAME_EVT_BUGANG] = self.OnEventBuGang + + self._eventmap[TX_Protocol.GAME_EVT_RESIDUE_CARD] = self.OnEventResidueCard end local __pre_delete_card = false -- 发送出牌指令到服务器 --------------------------lingmeng--------------------------- +-------------------------展示牌--------------------------- function M:SendNextCard(card) local _data = {} _data["card"] = tonumber(card) @@ -50,6 +52,12 @@ function M:SendNextCard(card) _client:send(TX_Protocol.GAME_NEXT_CARD, _data) end +function M:ReqResidueCard() + local _data = {} + local _client = ControllerManager.GameNetClinet + _client:send(TX_Protocol.GAME_RESIDUE_CARD, _data) +end + ------------------------------------------------------------ function M:SendOutCard(card, callback) @@ -91,6 +99,12 @@ function M:OnEventBuGang(evt_data) DispatchEvent(self._dispatcher, TX_GameEvent.EventBuGang, evt_data["info"], true) end +function M:OnEventResidueCard(evt_data) + printlog("OnEventResidueCard") + pt(evt_data) + DispatchEvent(self._dispatcher, TX_GameEvent.EventResidueCard) +end + -- 发送放子选择到服务器 function M:SendAction(id) local _data = {} diff --git a/lua_probject/extend_project/extend/majiang/jinxi/EXMainView.lua b/lua_probject/extend_project/extend/majiang/jinxi/EXMainView.lua index 9bcda9e0..93cd3a9e 100644 --- a/lua_probject/extend_project/extend/majiang/jinxi/EXMainView.lua +++ b/lua_probject/extend_project/extend/majiang/jinxi/EXMainView.lua @@ -68,38 +68,20 @@ function M:InitView(url) self:UpdatePlayerInfoView() end) - local showNextCtr = self._view:GetController('showNext') - local ShowNextConfrimCtr = self._view:GetController('showNextConfrim') + self.showNextCtr = self._view:GetController('showNext') local showNextList = self._view:GetChild('list_showNext') - local pop_showNextConfrim = self._view:GetChild('pop_showNextConfrim') self._view:GetChild('btn_showNext').onClick:Set(function() - showNextCtr.selectedIndex = 1 - end) - self._view:GetChild('btn_sendShow').onClick:Set(function() - self:SendShowNext(ShowNextConfrimCtr) + self:reqResidueCard() end) self._view:GetChild('btn_closeShow').onClick:Set(function() - ShowNextConfrimCtr.selectedIndex = 0 - showNextCtr.selectedIndex = 0 + self.showNextCtr.selectedIndex = 0 showNextList.selectedIndex = -1 self._showNextName = nil end) showNextList.onClickItem:Set(function(context) local _gamectr = ControllerManager.GetController(GameController) _gamectr:SendNextCard(string.sub(context.data.name, -3)) - showNextCtr.selectedIndex = 0 - showNextList.selectedIndex = -1 - self._showNextName = nil - -- self:ClickShowNext(context, ShowNextConfrimCtr) - end) - ShowNextConfrimCtr.onChanged:Set(function() - pop_showNextConfrim:GetChild("btn_ShowCard").icon = self._showNextName - end) - pop_showNextConfrim:GetChild("btn_center").onClick:Set(function() - local _gamectr = ControllerManager.GetController(GameController) - _gamectr:SendNextCard(string.sub(self._showNextName, -3)) - ShowNextConfrimCtr.selectedIndex = 0 - showNextCtr.selectedIndex = 0 + self.showNextCtr.selectedIndex = 0 showNextList.selectedIndex = -1 self._showNextName = nil end) @@ -153,6 +135,10 @@ function M:InitView(url) if room.playing or room.curren_round > 0 then self:ReloadRoom() end + + ---------为了下次复现出牌情况 + self._viewText_testName = self._view:GetChild('text_testName') + self._viewText_testName.text = 0 end function M:__BuGang(cardInfo, callback) @@ -309,6 +295,7 @@ function M:EventInit() _gamectr:AddEventListener(TX_GameEvent.OutHint, function(...) local info = self._player_card_info[self:GetPos(_room.self_player.seat)] + self._viewText_testName.text = tonumber(self._viewText_testName.text) + 1 info:UpdateHandCard(true) end) @@ -563,6 +550,11 @@ function M:EventInit() end end end) + + _gamectr:AddEventListener(TX_GameEvent.EventResidueCard, function(...) + local arg = { ... } + self.showNextCtr.selectedIndex = 1 + end) end function M:OutCard(card) @@ -972,17 +964,21 @@ function M:PlayerChangeLineState() end function M:UpdateCardBox(seat) - local index = seat + local index = seat - 1 local people_num = self._room.room_config.people_num if people_num == 2 and seat == 2 then - index = 3 - elseif people_num == 3 and seat == 3 then - index = 4 + index = 2 end self._ctr_cardbox.selectedIndex = index end ------------------------lingmeng---------------------------- +-----------------------展示牌---------------------------- + +function M:reqResidueCard() + local _gamectr = ControllerManager.GetController(GameController) + _gamectr:ReqResidueCard() +end + function M:SendShowNext(ShowNextConfrimCtr) if not self._showNextName then ViewUtil.ErrorTip(nil, "请先选择一个麻将牌") diff --git a/lua_probject/extend_project/extend/majiang/jinxi/GameEvent.lua b/lua_probject/extend_project/extend/majiang/jinxi/GameEvent.lua index 9180694e..58df4802 100644 --- a/lua_probject/extend_project/extend/majiang/jinxi/GameEvent.lua +++ b/lua_probject/extend_project/extend/majiang/jinxi/GameEvent.lua @@ -1,6 +1,5 @@ - local TX_GameEvent = { - -- 发牌 + -- 发牌 SendCards = "SendCards", EventTurn = "EventTurn", @@ -22,16 +21,18 @@ local TX_GameEvent = { ZPResult2 = "ZPResult2", EventNiao = "EventNiao", - + EvnetPiaoTip = "EvnetPiaoTip", EvnetPiao = "EvnetPiao", - - - --- - SendLaiZi="SendLaiZi", + + + --- + SendLaiZi = "SendLaiZi", SendGangZi = "SendGangZi", EventBuGang = "EventBuGang", - + + --- + EventResidueCard = "EventResidueCard" } -return TX_GameEvent \ No newline at end of file +return TX_GameEvent diff --git a/lua_probject/extend_project/extend/majiang/jinxi/Protocol.lua b/lua_probject/extend_project/extend/majiang/jinxi/Protocol.lua index 909cc4b2..1029458f 100644 --- a/lua_probject/extend_project/extend/majiang/jinxi/Protocol.lua +++ b/lua_probject/extend_project/extend/majiang/jinxi/Protocol.lua @@ -1,7 +1,7 @@ local Protocol = { - -- 发牌协议 - GAME_EVT_PLAYER_DEAL = "811", - + -- 发牌协议 + GAME_EVT_PLAYER_DEAL = "811", + -- 出牌 GAME_DIS_CARD = "611", @@ -28,16 +28,16 @@ local Protocol = { -- 大结算 GAME_EVT_RESULT2 = "818", - - -- 抓牌 + + -- 抓牌 GAME_EVT_DRAW = "819", - -- 转盘指向事件 + -- 转盘指向事件 GAME_EVT_CHANGE_ACTIVE_PLAYER = "820", -- 抓鸟事件 GAME_EVT_NIAO = "821", - + -- 飘鸟提示 GAME_EVT_PIAOTIP = "833", @@ -49,7 +49,9 @@ local Protocol = { GAME_EVT_DOGANG = "839", --送牌 - GAME_NEXT_CARD = "888" + GAME_NEXT_CARD = "888", + GAME_RESIDUE_CARD = "889", + GAME_EVT_RESIDUE_CARD = "613" } -return Protocol \ No newline at end of file +return Protocol diff --git a/lua_probject/extend_project/extend/majiang/lichuan/EXMainView.lua b/lua_probject/extend_project/extend/majiang/lichuan/EXMainView.lua index 12114395..8d34c984 100644 --- a/lua_probject/extend_project/extend/majiang/lichuan/EXMainView.lua +++ b/lua_probject/extend_project/extend/majiang/lichuan/EXMainView.lua @@ -152,6 +152,10 @@ function M:InitView(url) if room.playing or room.curren_round > 0 then self:ReloadRoom() end + + ---------为了下次复现出牌情况 + self._viewText_testName = self._view:GetChild('text_testName') + self._viewText_testName.text = 0 end function M:__BuGang(cardInfo, callback) @@ -307,6 +311,7 @@ function M:EventInit() _gamectr:AddEventListener(TX_GameEvent.OutHint, function(...) local info = self._player_card_info[self:GetPos(_room.self_player.seat)] + self._viewText_testName.text = tonumber(self._viewText_testName.text) + 1 info:UpdateHandCard(true) end) @@ -971,12 +976,10 @@ function M:PlayerChangeLineState() end function M:UpdateCardBox(seat) - local index = seat + local index = seat - 1 local people_num = self._room.room_config.people_num if people_num == 2 and seat == 2 then - index = 3 - elseif people_num == 3 and seat == 3 then - index = 4 + index = 2 end self._ctr_cardbox.selectedIndex = index end diff --git a/lua_probject/extend_project/extend/majiang/nancheng/EXMainView.lua b/lua_probject/extend_project/extend/majiang/nancheng/EXMainView.lua index d167a100..ffe3f859 100644 --- a/lua_probject/extend_project/extend/majiang/nancheng/EXMainView.lua +++ b/lua_probject/extend_project/extend/majiang/nancheng/EXMainView.lua @@ -152,6 +152,10 @@ function M:InitView(url) if room.playing or room.curren_round > 0 then self:ReloadRoom() end + + ---------为了下次复现出牌情况 + self._viewText_testName = self._view:GetChild('text_testName') + self._viewText_testName.text = 0 end function M:__BuGang(cardInfo, callback) @@ -308,6 +312,7 @@ function M:EventInit() _gamectr:AddEventListener(TX_GameEvent.OutHint, function(...) local info = self._player_card_info[self:GetPos(_room.self_player.seat)] + self._viewText_testName.text = tonumber(self._viewText_testName.text) + 1 info:UpdateHandCard(true) end) @@ -983,12 +988,10 @@ function M:PlayerChangeLineState() end function M:UpdateCardBox(seat) - local index = seat + local index = seat - 1 local people_num = self._room.room_config.people_num if people_num == 2 and seat == 2 then - index = 3 - elseif people_num == 3 and seat == 3 then - index = 4 + index = 2 end self._ctr_cardbox.selectedIndex = index end diff --git a/lua_probject/extend_project/extend/poker/runfast/CardCheck.lua b/lua_probject/extend_project/extend/poker/runfast/CardCheck.lua index 42c15a01..158bf69e 100644 --- a/lua_probject/extend_project/extend/poker/runfast/CardCheck.lua +++ b/lua_probject/extend_project/extend/poker/runfast/CardCheck.lua @@ -1,5 +1,3 @@ -local RunFast_CardType = import('.RunFast_CardType') - local CardCheck = { cardList = {}, @@ -11,7 +9,20 @@ local CardCheck = { threeNoBelt = false, planelack = false, threelack = false, - fourDaiThree = false + fourDaiThree = false, + fristCard = true +} + +local cardType = { + one = 1, + long = 2, + dui = 3, + threeAndTwo = 4, + normolPlant = 5, + zha = 6, + onlyThree = 7, + onlyPlant = 8, + zhaAndThreee = 9 } local M = CardCheck @@ -23,12 +34,24 @@ function M:initFlag() self.planelack = config.planelack == 1 self.threelack = config.threelack == 1 self.fourDaiThree = config.fourDaiThree + self.fristCard = true print("==============================lingmengcheckinitFlag") pt(config) pt(self) return self end +function M:initLastCard(cardList) + self.fristCard = false + if #cardList == 0 then + self.fristCard = true + return + end + self.lastCardNum = #cardList + table.sort(cardList) + pt(cardList) +end + function M:initCards(cardList, flag, flag_allCards, lastCards) print("lingmenginitCards") pt(cardList) @@ -84,8 +107,6 @@ function M:initCards(cardList, flag, flag_allCards, lastCards) end function M:CheckCards() - -- local zha - print("lingmengCheckAloneOrLong") if self:CheckAloneOrLong() then return true @@ -110,14 +131,17 @@ function M:CheckCards() end function M:CheckAloneOrLong() - if self.cardNum == 1 or self.long then - return true + if self.cardNum == 1 then + return cardType.one + end + if self.long then + return cardType.long end end function M:CheckDuiZi() if self.cardNum == 2 and self.cardSize == 1 then - return true + return cardType.dui end if self.cardNum % 2 == 0 then local last_k @@ -137,22 +161,22 @@ function M:CheckDuiZi() return end end - return true + return cardType.dui end end function M:CheckSanDai() --三张 if self.cardNum == 5 and self.cardSize < 4 then - return true + return cardType.threeAndTwo end if self.threelack and self.cardNum == 4 and self.cardSize == 2 and self._flag_allCards then - return true + return cardType.threeAndTwo end if self.threeNoBelt and self.cardNum == 3 and self.cardSize == 1 then - return true + return cardType.onlyThree end @@ -181,7 +205,7 @@ function M:CheckSanDai() end end if num_san >= temp_normol_feiji then - return true + return cardType.normolPlant else return end @@ -210,7 +234,7 @@ function M:CheckSanDai() print("liengmengCheckthreelack4", num_san, self.cardNum - num_san * 3 < num_san * 2) if self.cardNum - num_san * 3 < num_san * 2 then - return true + return cardType.normolPlant else return end @@ -236,13 +260,13 @@ function M:CheckSanDai() return end end - return true + return cardType.onlyPlant end end function M:CheckZha() if self.cardNum == 4 and self.cardSize == 1 then - return true + return cardType.zha end if self.fourDaiThree and self.cardNum == 7 then @@ -254,7 +278,7 @@ function M:CheckZha() return true end end - return false + return cardType.zhaAndThreee end end diff --git a/lua_probject/extend_project/extend/poker/runfast/RunFast_GameController.lua b/lua_probject/extend_project/extend/poker/runfast/RunFast_GameController.lua index a22b323f..dee35603 100644 --- a/lua_probject/extend_project/extend/poker/runfast/RunFast_GameController.lua +++ b/lua_probject/extend_project/extend/poker/runfast/RunFast_GameController.lua @@ -18,8 +18,8 @@ local RunFast_GameController = {} local M = RunFast_GameController function M.new() - setmetatable(M, {__index = GameController}) - local self = setmetatable({}, {__index = M}) + setmetatable(M, { __index = GameController }) + local self = setmetatable({}, { __index = M }) self:init("跑得快") self.class = "RunFast_GameController" return self @@ -47,13 +47,13 @@ function M:RegisterEvt() --self._eventmap[RunFast_Protocol.RunFast_Oener] = self.Oener -- self._eventmap[Protocol.GAME_EVT_PLAYER_JOIN] = self.OnEventPlayerEnter self._eventmap[RunFast_Protocol.PT_GAMETUOGUAN] = self.Game_TuoGuan - - self._eventmap[RunFast_Protocol.GAME_EVENT_XIPAI] = self.OnEventXiPai - self._eventmap[RunFast_Protocol.GAME_EVENT_NOTIFY_XIPAI] = self.OnEventXiPaiAnim - - self._eventmap[RunFast_Protocol.GAME_EVT_CARDINHAND] = self.OnPlaySuccCheckHandCard - + + self._eventmap[RunFast_Protocol.GAME_EVENT_XIPAI] = self.OnEventXiPai + self._eventmap[RunFast_Protocol.GAME_EVENT_NOTIFY_XIPAI] = self.OnEventXiPaiAnim + + self._eventmap[RunFast_Protocol.GAME_EVT_CARDINHAND] = self.OnPlaySuccCheckHandCard end + -- function M:Oener(evt_data) -- local seat = evt_data["owner"] -- self._cacheEvent:Enqueue(function() @@ -79,7 +79,7 @@ end -- p.total_score=evt_data["score"] -- p.hp_info = evt_data["hp_info"] -- -- p.total_score=self._room.room_config.energyTab==0 and evt_data["score"] or evt_data["score"]/10 - + -- DataManager.CurrenRoom:AddPlayer(p) -- DispatchEvent(self._dispatcher,GameEvent.PlayerEnter, p) -- end @@ -87,51 +87,47 @@ end function M:SendXiPaiAction(callBack) local _data = {} - local _client = ControllerManager.GameNetClinet + local _client = ControllerManager.GameNetClinet _client:send(RunFast_Protocol.GAME_XIPAI, _data) - self.XiPaiCallBack=callBack + self.XiPaiCallBack = callBack end function M:OnEventXiPai(evt_data) - if evt_data["result"]==0 then - if self.XiPaiCallBack then - self.XiPaiCallBack() - end - else - ViewUtil.ErrorTip(1000000,"申请洗牌失败") - end - + if evt_data["result"] == 0 then + if self.XiPaiCallBack then + self.XiPaiCallBack() + end + else + ViewUtil.ErrorTip(1000000, "申请洗牌失败") + end end - - function M:OnEventXiPaiAnim(evt_data) - printlog("洗牌动画===》》》》") - pt(evt_data) - local playeridList = evt_data["list"] - local my_isXiPai=false - local other_isXiPai=false - if playeridList and #playeridList>0 then - for i=1,#playeridList do - local p = self._room:GetPlayerById(playeridList[i]) - if p== self._room.self_player then - my_isXiPai=true - else - other_isXiPai=true - end - end - end - - self._cacheEvent:Enqueue(function() - DispatchEvent(self._dispatcher,RunFast_GameEvent.EventXiPai,my_isXiPai,other_isXiPai) - end) + printlog("洗牌动画===》》》》") + pt(evt_data) + local playeridList = evt_data["list"] + local my_isXiPai = false + local other_isXiPai = false + if playeridList and #playeridList > 0 then + for i = 1, #playeridList do + local p = self._room:GetPlayerById(playeridList[i]) + if p == self._room.self_player then + my_isXiPai = true + else + other_isXiPai = true + end + end + end + + self._cacheEvent:Enqueue(function() + DispatchEvent(self._dispatcher, RunFast_GameEvent.EventXiPai, my_isXiPai, other_isXiPai) + end) end - -function M:SendCard(cards,currentCard) +function M:SendCard(cards, currentCard) local _data = {} _data["card"] = cards - _data["all_card"] = currentCard + _data["all_card"] = currentCard local _client = ControllerManager.GameNetClinet _client:send(RunFast_Protocol.RunFast_Send_Card, _data) end @@ -210,16 +206,16 @@ end function M:OnPlaySucc(evt_data) if pcall( - self.OnPlaySuccCheck,self,evt_data - ) then - - else - printlog("数据异常OnPlaySucc==>>>") - end + self.OnPlaySuccCheck, self, evt_data + ) then + + else + printlog("数据异常OnPlaySucc==>>>") + end end function M:OnPlaySuccCheck(evt_data) - local seat = evt_data["player"] + local seat = evt_data["player"] local card_obj = evt_data["card_obj"] local cards = card_obj["card_list"] local remain = evt_data["remain"] -- 报单 @@ -231,31 +227,28 @@ function M:OnPlaySuccCheck(evt_data) player.hand_count = remain local card_type, number, length, plan_three_count = self:GetCardListInfo(out_card_list) player.out_card_list = self:GetSortOutCardList(out_card_list, card_type, number, plan_three_count) - DispatchEvent(self._dispatcher, RunFast_GameEvent.OnPlaySucc, player, remain, card_type, number, otherList,length) + DispatchEvent(self._dispatcher, RunFast_GameEvent.OnPlaySucc, player, remain, card_type, number, otherList, + length) end ) end function M:OnPlaySuccCheckHandCard(evt_data) - local seat = evt_data["player"] - local cards = evt_data["handCards"] + local seat = evt_data["player"] + local cards = evt_data["handCards"] self._cacheEvent:Enqueue( - function() - DispatchEvent(self._dispatcher, RunFast_GameEvent.OnPassSuccCheckCard,seat,cards) + function() + DispatchEvent(self._dispatcher, RunFast_GameEvent.OnPassSuccCheckCard, seat, cards) end ) - end - - - function M:OnPassSucc(evt_data) local seat = evt_data["seat"] self._cacheEvent:Enqueue( function() local p = self._room:GetPlayerBySeat(seat) - p.out_card_list = {0} + p.out_card_list = { 0 } DispatchEvent(self._dispatcher, RunFast_GameEvent.OnPassSucc, p) end ) @@ -270,6 +263,7 @@ function M:OnPutError(evt_data) end ) end + function M:TuoGuan(isTuo) local _data = {} _data["tuoguan"] = isTuo @@ -284,6 +278,7 @@ function M:Game_TuoGuan(evt_data) DispatchEvent(self._dispatcher, RunFast_GameEvent.Game_TuoGuan, tuoguan, seat) end) end + function M:OnIndexMove(evt_data) local seat = evt_data["index"] self._cacheEvent:Enqueue( @@ -303,8 +298,8 @@ function M:OnOptions(evt_data) function() local lastCardList = self:GetLastCardList(self._room.self_player.seat) local cardType, cardNum, cardLength = self:GetCardListInfo(lastCardList) - - DispatchEvent(self._dispatcher, RunFast_GameEvent.OnOptions, play, cardType, cardNum, cardLength, pass) + DispatchEvent(self._dispatcher, RunFast_GameEvent.OnOptions, play, cardType, cardNum, cardLength, pass, + lastCardList) end ) end @@ -319,8 +314,7 @@ function M:OnPiaoTip(evt_data) local reload = evt_data["reload"] self._cacheEvent:Enqueue( function() - - DispatchEvent(self._dispatcher, RunFast_GameEvent.OnPiaoTips, piao,reload) + DispatchEvent(self._dispatcher, RunFast_GameEvent.OnPiaoTips, piao, reload) end ) end @@ -331,19 +325,18 @@ function M:OnPiaoAction(evt_data) self._cacheEvent:Enqueue( function() - - DispatchEvent(self._dispatcher, RunFast_GameEvent.OnPiaoAction, seat,piao) + DispatchEvent(self._dispatcher, RunFast_GameEvent.OnPiaoAction, seat, piao) end ) end function M:OnResult(evt_data) local result_type = evt_data["type"] - + local info = evt_data["info"] local winseat = evt_data["winseat"] local remaincards = evt_data["remaincards"] - DataManager.CurrenRoom.xipaiScore=evt_data["xipai_score"] + DataManager.CurrenRoom.xipaiScore = evt_data["xipai_score"] --printlog("wwwwwwwwwwwwwwwwwwwww1111111 ",result_type) --pt(evt_data) if result_type == 1 then @@ -356,7 +349,7 @@ function M:OnResult(evt_data) p.total_score = info[i]["score"] info[i]["self_user"] = p.self_user end - + DispatchEvent(self._dispatcher, RunFast_GameEvent.OnResult, over, info, winseat, remaincards) end ) @@ -393,6 +386,7 @@ function M:OnConfrimToNextGameSucc(evt_data) end ) end + function M:Game_TuoGuan(evt_data) local tuoguan = evt_data["tuoguan"] local seat = evt_data["seat"] @@ -400,6 +394,7 @@ function M:Game_TuoGuan(evt_data) DispatchEvent(self._dispatcher, RunFast_GameEvent.Game_TuoGuan, tuoguan, seat) end) end + function M:ChangeCodeByFrom(cardList, isSort) isSort = isSort or false local new_card_list = {} @@ -520,14 +515,13 @@ end --Bomb = 11 -- 牌型,大小, 长度 function M:GetCardListInfo(cardlist) - if #cardlist == 0 then return 0, 0, 0, 0 end -- 检测牌型 local card_type, card_num, card_length, plan_three_count = RunFast_CardType.None, 0, #cardlist, 0 local card_map = self:GetCardMapByList(cardlist) - + if #cardlist == 1 then card_type = RunFast_CardType.OneCard card_num = math.floor(cardlist[1] / 10) @@ -536,14 +530,12 @@ function M:GetCardListInfo(cardlist) card_num = math.floor(cardlist[1] / 10) elseif #cardlist == 3 then card_num = math.floor(cardlist[1] / 10) - if card_num==14 and DataManager.CurrenRoom.room_config.threeA==1 then + if card_num == 14 and DataManager.CurrenRoom.room_config.threeA == 1 then -- body card_type = RunFast_CardType.Bomb else card_type = RunFast_CardType.Three - end - elseif #cardlist == 4 then local max_key = 0 for k, v in pairs(card_map) do @@ -598,11 +590,9 @@ function M:GetCardListInfo(cardlist) else local one_count, two_count, three_count = 0, 0, 0 local max_one_key, max_two_key, max_three_key = 0, 0, 0 - + for k, v in pairs(card_map) do - if #v == 2 then - if k > max_two_key then max_two_key = k end @@ -612,7 +602,6 @@ function M:GetCardListInfo(cardlist) card_num = max_two_key end elseif #v == 1 then - if k > max_one_key then max_one_key = k end @@ -622,7 +611,6 @@ function M:GetCardListInfo(cardlist) card_num = max_one_key end elseif #v == 3 then - if max_three_key == 0 then max_three_key = k three_count = three_count + 1 @@ -632,10 +620,10 @@ function M:GetCardListInfo(cardlist) elseif k < max_three_key and k == max_three_key - 1 then max_three_key = k three_count = three_count + 1 - -- else - -- max_three_key = k + -- else + -- max_three_key = k end - + --three_count = three_count + 1 end end @@ -651,25 +639,17 @@ function M:GetCardListInfo(cardlist) -- card_num = max_three_key -- end plan_three_count = three_count - - if three_count * 3 == #cardlist then + + if three_count * 3 == #cardlist then card_type = RunFast_CardType.Plane card_num = max_three_key - - elseif three_count * 4 >= #cardlist and #cardlist%4==0 then + elseif three_count * 4 >= #cardlist and #cardlist % 4 == 0 then card_type = RunFast_CardType.PlaneAndOne card_num = max_three_key - - - elseif three_count * 5 >= #cardlist and #cardlist%5==0 then + elseif three_count * 5 >= #cardlist and #cardlist % 5 == 0 then card_type = RunFast_CardType.PlaneAndTwo card_num = max_three_key - - end - - - end return card_type, card_num, card_length, plan_three_count @@ -681,7 +661,7 @@ function M:GetCardMapByList(cardlist) local card = cardlist[i] local card_num = math.floor(cardlist[i] / 10) if card_map[card_num] == nil then - card_map[card_num] = {card} + card_map[card_num] = { card } else card_map[card_num][#card_map[card_num] + 1] = card end diff --git a/lua_probject/extend_project/extend/poker/runfast/RunFast_MainView.lua b/lua_probject/extend_project/extend/poker/runfast/RunFast_MainView.lua index 3728cf51..210d106e 100644 --- a/lua_probject/extend_project/extend/poker/runfast/RunFast_MainView.lua +++ b/lua_probject/extend_project/extend/poker/runfast/RunFast_MainView.lua @@ -769,6 +769,7 @@ function M:EventInit() local card_type = arg[2] local card_number = arg[3] local card_length = arg[4] + local lastCardList = arg[6] local ctr_number = pass == nil and 2 or 1 self.caozuo = 1 --记录是否是自己出牌的阶段 self.pass = pass @@ -790,6 +791,7 @@ function M:EventInit() end local zdts = self._view:GetController("zidongtishi").selectedIndex self._player_card_info[1]:ShowOutCardOption(ctr_number, card_type, card_number, card_length, m, play, zdts) + self._player_card_info[1]._cardCheck:initLastCard(lastCardList) end) -- 托管 _gamectr:AddEventListener(RunFast_GameEvent.Game_TuoGuan, function(...) diff --git a/lua_probject/main_project/main/majiang/MJMainView.lua b/lua_probject/main_project/main/majiang/MJMainView.lua index 1a3f69c2..c3f4bfeb 100644 --- a/lua_probject/main_project/main/majiang/MJMainView.lua +++ b/lua_probject/main_project/main/majiang/MJMainView.lua @@ -40,9 +40,12 @@ function M:InitView(url, use_custom_bg) local _cardbox = _view:GetChild("cardbox") self._zhuanpanCtr = _cardbox:GetController("zuozi") - self._ctr_cardbox = _cardbox:GetController("c1") - self._tex_leftTime = _cardbox:GetChild("tex_leftnum") + -- self._ctr_cardbox = _cardbox:GetController("c1") + -- self._tex_leftTime = _cardbox:GetChild("tex_leftnum") + local centerBox = _view:GetChild("Comp_ConterBox") + self._ctr_cardbox = centerBox:GetController("seat") + self._tex_leftTime = centerBox:GetChild("Text_Time") if self._room.card_type == 2 then self:Change3d(true) diff --git a/wb_unity_pro/Assets/ART/base/main_majiang/ui/main_majiang_fui.bytes b/wb_unity_pro/Assets/ART/base/main_majiang/ui/main_majiang_fui.bytes index 4baba03669e4e73d3fbd17565b750b650f6731ed..ec30cabb5a0e2dfb66e94d2fa7e8b58d6b9e4886 100644 GIT binary patch delta 55491 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 QCJdU;S!4-U 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 delta 55912 zcmce<2bfj0_C9=)?7k1oP-JFchAH&kd+(i@q4(Z93eu}6MUgVVQjul@=^!#x0Tl)5 zqKMLM2r9)63Vd&NIddr9tM~VOf95%yH!I0Xc6O4rva*tMb$<3wXJnsSGfv!149I^< zohr^Z$NwzA0|KOCn>s7oH6i#MJ~u7(gS~HE+f|o|7x_yvz!txi`gt8DUgk@j;8HiZ zj4yYBE8O5K{8cCTnj3tbzu^Q|y1`ZaO((e84X)v9o!~k*xSnrtf*al7CcfDTzU2nD z@VA}dRyUZ=w>iP>Zg2&JV!QK2FC%DHA?&bTO;Ja?{J^sEE-0ucI;2%1{18(pj z|Hug*a)XEY5hr-m4Ibmio!|*K_%T1}1V3?upYl^q@H01fnt$#Dzi@+R_*o}-&JCXD z7o6ZlH+YGE=>)%WgJ1J+oZz=^@G}3-30`r7SNZo&@CP^eBfsVZue-q;{H7E9$qoL@ ze{q7py20Q0?@sU!H+YNRc7lH*ScB<-lY;-n?@%mbV>N#F-d%n#EpmIRwoQnDVDvL% zof)T8&XOas+xcn^#jyxz@W%P zYXqwokr{yq5sB{i5_;lc+LtaWDk6)>N>vnAlx3rS3d_T?r(Mbtr=1kS7LU;eg^g2l z1Onh!LS?PgC=o4U(r2h_5o0;&W-^OSucEU>T+Jn75pl|7Ejf!zuT@3FGOC}6HD|eH zsywtU6Kl%ise1}5N~JQheQE-pV>Bh-WHDSMrv138NLtAfCUxt?@^KMQiI;fp>}Vg6 zB=Q8bdv}pIFj{`nPP8pd2P0VBh`e~3e1V+z?%lg1KWSN7R-s|9GTRJ92Ld%jeo=r1 zMzR=DP!ys)kt`}PS`-$ATvna%{5-(ifJ~oD6mgTqh@t>zkg-ZJKlK_EyeTZTC@xBf z0#0W2EZSyJcw9+Q3MH4w!lK%j7G?Zo%faH6@ML90IWI2o8seIT#RZCq@?IR9jJUkv zag{^`uwRyi#l%@UN7Qs5_Axwc?$E;)4Fu|nzEmwcD<=Ah z{xmo{%f$w`;elchZAVxP7DH%gK9)lZbQVKHxVsnz9Pt>s(r_0E+&de zVzT?7weg@0LJx|*+*(W#Q{A}oh-(xc*G@borqVIVY#PA#0P#=zsmmgDMn^0f5YLF| zNR%gv6;Wr1nSd=NoF$(1sn3bofNw>yV(fXk6oodOLwDrYTp5ZHX=0uXM<h?5f0uLEnu za7PgXJmKjVi77NM2GxFp*2%Ax zbP!+hs{&ix43&_fX;=pFX21}uDLy9#&YFPf!?l5IK3o^b?!)zg0Y2OyHu`Xr*zCe+ zMQrhjZ;P!yOc&ccSZ%x5A$B?yVe=pWlEN#pOYHXI0+Ue5$>DMDh&^H_4b6p0?iKrd z_^x=*gNg5p{eI?r$UHba^9SNXaeyw!%m>9sK0G82`|t=79CZ^MLjn&TM*JgO~71JoqJE$rsc$j^RCR^N8)gM#FhEeW>BS z5#Nf-ZnqhTMjaZ~sH_=ArWXeZ6sQ{>mn_~8muW+8^x2gFhXAUq@>4(90a+XIofpR} zaOxG}gi(71L+7e9bky&~62N5ifAt59ovU;`5rVK2hR#*DiVqGQ))_L$+0>pjm5738NdY<@>ZYHp3P5gz9;mSC1M_i)`i7Yxn z+!Z(ctPefHJ@E^5Ped^R@taH@)1E0@fdYnS4Yb9lQ>d|{1B#-kimRWn1jMxnkJA;y zkK2m4wD34nJf&#zb;QJ5UZOxXBq|-A$X0?#gjSDA%%o)YlPyQGTH(nelt?8DbxmSX zRkAAClq_yl^CDUJET?2w9`oN@e#8|HXOTmRqD@IGMvYct@T!i1mzopf2rVZ|&!xor zS#u(5_VBE67-McSHMbJ4Bv6e!(0vk>BqhPA2unqd`yMNglGlq1)I^*S#*Hmg^7;9u zAnw<&I3>SQ0PHv9L7Nr)+eC#h&Ykz2BZ z2#q5~40VB=!iND~$cO5EB!>I&ka*mMG2#iIc1(=$;c+q2haW3-0F(2hht*Z;u}|F^ zZAXos53f;urGX#!(Svafl}5B8KPuH&X+paJ)TUyR(u~dk#y3}zU6zZHt$v7Q(E$5K zNl}t1TLI{8sQ`5fKsRWC>DhnqFO`-c&nbW|*Gg&avq=G)o*_0ErfrnAe%x<}D<2-$ zPHFGQ{r+HF2c;v}-vfKKlhPS5S3y=Jv5V5x&rumU!qrTro6;T0`XX7C9!gI?SrH^F z5MF36rMDkf;(<7JL+L|D3PKO*E5D+XlzvKofB4D46c^5D00flR2?s(#d2o<2*oQ-u zp*|d@4EN#V$`d{up^Wt5lgcO`j#kF_aI7-UgNfsn34fA6!$Pb?5zIaU%Pn`|_V98`#c~VDu-r=2 zvE1^KEk`Tex7;$7*+{mm2!!hM{<5wE5`|BKBCj&XkDG|NiDAvmvnz9zc{HggIzkS% z9x$RPUeG)$QWRZ!z8l68Q%O_ixjnfjID|_Io>f`ka)^P#TZk4TW0gf-d29qyhs%dR zP$4gl?}yTNDZDPTlo!C@IvB*i=rdRV2E#&$ieibcEJmUN#aOW_FZ+oeEJazOELD~{ z^<@>o;PDUx44LK13S}A1DTWF173D=QnRyk~gT~>>UR7T6;?UxOz_ReT*OfQG;vQJ2 zE0t9qZ2zXR+Anl6a`X?+u|`?z$6?797#AM5PFerAaT}D4U_Z1trh!e$X1_w0!D2@^ zi?@_5e;fCocEBz9AZ?lTI1U+)5mwb2G8xJc>%Roh4exO0?zq#j(KIv`r@-qxZ|Q`r^29f-;q3UD?MpxEw2} zo&={)XwS2v9lgIr>2T?a*9@zhb`y6XGi5?xbm4>n**{og{a%pq9DClfhDlr zX{nzlYKm-(({!@}8sl@+qse4m-Kz)tg4R}qf$I!emGE_z7S9nqO!k6M&MD`W3v{v) z8v7z8RAzbgOE8V~QNB#OnJEtq3o<=zd84d`BB_0quV_wXR?S90`C9n~FYbKWzDe;; zGP+ZlWs8t8-zu^z427NOyR=IM^HIrGET5)aQod6zqz|paDl+v7?}0+sR%L6%)j*Io zjb!;~QZ;r`{hrrHMBD0YGW&r}S7(dak2InNJ7HW?t}8e0-DPRDR*$CrHQ5pMrt*{W zb2`dv?4T+|P=C5v6}B(scj{iBHDP~9(^&4b^~)^! zv_5Nuurz_0frCQ1rQAjh>Nj8?YRaF=U%=TKX0*+nN4AZm%Cd3OLF4@9H%=a-v{3FSchNi>8nKcrlX6cDC>QXwsChCiYt4$M=WN2Vu}G$Jr0-^PzwdPT39VY z8@jUkc2Tt$at%V#1&g||A$D<9RuJkHf1YY3vs~0QkI-pocNmY?cVpE=NwpMR>&9By zrPVUfmOnw_X7?vdi7cy@Lsh2+0_=+HPM^_@79uAdUx}u^-JKO$G)lyX3Tj2F(Sr?O zl_*OAkv$^f-d(kFK$@r8kR`St6*|4Q|k%JrLZ}9epXPCnmFM)bt*U7S+`n zG`}ZH)nO7;YpJymX29tw-H^A*R0C;NHEvQ>bJCk&EW`f}!a`FBT;ls*UJY zFD!-|t4*kVZ-Az1Guqx8EBNMWGMRl?OFadAQq>l8tG_5s3;VDn(Nb+iDFZ}PLqs92 zwc3U<_hl&&c-d-OwH?~54jwm=N|g~s>BYV*L9|yp(5}9$C+kQF{a7Bo6H<0oyHMkP ztOV;yk%L5@2ubUvb`J!yym{~5jovi85X|F;`oa1h-wzMHp$!c9J=IO1Gu(=LW2UFJpY%m)_wM?EpVkqKf}ZhWZEsk6x{CGzWmlAx;3)5T#dPtG}k);dE^ zD;KB)D`i!bR@-DSN~m*b#SC54)tyrWI zRehXw6fdYR((o~&0INV%Z?d9_`jWbs4!VS!V?_B$FRM%LVG9V;83rc)MXF0xsAlp{ zT`mcrtWaO^D6e{y*HqXvoiuNFl$Gi#kMgERS*>CL>!gvZTghjgy56H~@F*K6shd2~ zW{>oi3hSqn?QM^;RZaIOvKb|#?dlGXveTpNQg?flcRb1-b+1R+=TY8O-}5N%dzAg^ zqz^pOhaTyGdeEcDrKBwEkb2mo9Pube)ngvzxJNmme(X_BdX!I8tXAcpddj1Grk?gF zm}v1YQvE_bGsz=iKgS`RQ_p*p3m)a73Qa=(sb6}Ouhg$SiqtzKqio+7YyVf+%ck6`HOYnn}e*v9@|~EGvp= zR$6LQ0ZI`pn=UOZ#WkA_k7AYe(g>8&f|O}Awl2$}h)mRUG^;5xYY{YOG)8+QT^fTa zJd2i<{v6Gki)>nUYC4A15|3#)Xzm!Kh;mazYccfK7^KLl<)UU|SuGYzbH=ikYMho^ zOr^_Xp+Ur_-JBWCwFGKDj^$OKL2-#RY8kF@n)%4+L z!_2~|Xgz%d0&$vC-4uN^0tuQ^>6Z3Ct8mE&DqJcpOLUx(NvK1$(pnk1JeBo%Nd5oM zYm;i4h8K%dqr_DW~Q;}*smL{(g zK_iD?Bebg6U@AY8wNCJ{*Rlw; zw^oamJY*VH;=2WWgc>#T3QcPB95-W{nb=BB&p%wk>0+{Oy( z+fi0myo1CeJU7jqkB+^OhHYc<_?o*772il-Y=c7EjUu+Qb`Z1YkMLY+>ndiUjWZy) zmu<(Q^c}G1PB+t7a~%Re>%m)7*Bz`hRo}sKs_%l*lREEU&DCCjy=mhP)>!n>`qG^p zP{*OVEQBjUf45T(&<4_;h0sL?X@lwJPJkiWQ0lyk_1A}K&<6vZsrxS0oO11EQS5OV zOst*$1h|gSM$%zoh1tfmc|6+Co&;@_Hk!`uW_8su2#lp}FQCti101hSpmi^>hGL>N ziQah!5__^Xg<|)xmSU>*6s>&`V4C(c9gvh~wCR+4FKeT|kDN1T%wD|hjkI&G(>`bR zvT6v$>_eBDnci+6o6by@Lj?At?|tm{Jvp?!z6Vuy7OSAG6@gE+=cw{hm;h!|Y&O20 zYtPf+Y&=Z~oYv;h)n%-&mSylVSlfosZ&ei~z(}pt3fbszyuh3nlltdX`*5Tci#8|0iUfDvl@JIe}x_6 zUspqMT&u04h&61iSg&oM=hk4%Y=rEV%Yf?IZ?dA|daY;q*gI6*K)K^CGn00%XE|(bq=r>qK*5K)*F>Quvx{t` zZNOmLO9>lLJ-MJ5x`EZR<52U)YCWV3q;(&Zlj1hApria6tO=s9ilKWOAROhorOrmy z8mp8hv=~6&r#8bwEuiOTV8zg1W{caz@`zOJU8=JQ3Tk`Sn%HK@tFhm+2=<(&C4X`@cc}xx@n`{GE9#h97PkV5RBUXUtSoAh4 zDUPcXsm$A$E>5V!Y1!K>HS%L;=~5BR*h?-wTT>#IE_C#5%vr^@vM76)Iuc|RpGCBB zApDhvY{d+Ik`f29XnTbEgcrGvst>_h29YN986uKMO-C(1(LSa4bk3HA$ceQ<(316pW;J&S-h z!JY&B-zHcn*#CWkeHNxB z2g5Wpem`rVegk-c4(x}>Jgi-$Iv=p!V!IkaYd(N>;ijwhA?xkH>9q1g*3*G`DB=Jt zSeGQfNQd79jvgiZ6B|rZo)U#=<9^s3CHpVA^v$Y-7@baRW{=UHNjylCX9;!wGM(=2 zN56aRAS*9+Xd&Su~d4wXX0c z>>H|{mA9mOhoNE1I)9^mOT#~6HL3j(%*2;z+Yu-Nvnl#0+sMA7AEF^pwD+|u)a@8M zDh@%jDRumQ&E^W2JgC`Z5+SALs#I!{4AvgPWUc1uHs4F#rho{kHCLrtQy@d5`TjwT z<_AZkVI5J{ztU)a4AW@Z8LSKPduq*Yovjtx0qq*qKLxAZbw}feZEV9Sc1pd0mtes1 z8J9Nsm`NKygW>WfGqavCp5z;uoD^wZe4dIA<5(KdH!g`o7SKJw3S#S3ah=b5N8q zuY@VeZ=GYa#ZTJLROkHvF5U~~`VU4#O1QuZI-%`uAU8{bBib!cz1% zzKHN|ZWyAUj$LH^xc0k4&>`_5F`Co4ORO?g{EHRl+8^}JC9smB|MN?%C)aMdc~?RF zxBpV+z3mbp|LOdfY^n{3kIB0_M%xpV7n@E>Hn zvJH)q>dSbOI$y&?BL)5RYpj1H1U;H1Gi)9U!{qyr>r%d7hkSSCe@z+h&c}P(!Lu3h zNj7ste&M-k_VT%cPfe!?nC**zC8Y&th1{f&e`?5{Cq1?uO30q42R%y2o~LK> zC?R{E4%cocSB5=LkMKw#d!8QYQ9|}S9j-!7wvatf&+1V^_B=hCM+w>U^z0rbWY5zd z^C<6o54K;Ql*1#1?0I^WM+w>U^k|O~vgheB9wlVY({p;1kUdX_Jzf4~*z@#Qj}o%y z>2Z@hQpldC=k_Qed!8QeQ9|}SJ;9@d?0I^kM+w>UbQqK6pBl2~>3KX#$eyR?eaN1t z=kpSU?0I^Aj}o%y=>Fo?ghMxc0nAY0uLOYaEjrCIzvMHtpj%Xw@&! z^N0PyvKrE~rx(E)gIT{|OANL=y{M+r(O*~-Q49t=^xF=iIBe8oeq}ur?Jt$ng--(?-H8b=2ns5{zdM+~`p=Vt!^pbihio5l{ zi=Eu`=`E}(c}W5SML3V_=-;0c9xaOpO|W&qV8XU`u-hO+gVkbciB`& ztUP}gtIC?_3vyNY-CZ``ktBWZVWyQ!w>|f;U*T;xEzHJK1!nGreesPMdf`s)?k?qG z0CIO}oCI=r=?vp--34ieBuYEpOQm+4=fH+oXi*Aj)R->x7uiC4QFk~`iKr}vklb%l z=3+Q5q;ofUahlizD(ENQvS>rEf_S+!-6VL+AY>2*ws8?DlZkzgUGGDev3#8g^)8RL zmpUpu1)^ZB!h7GhNriP`Rh8erNu^hX^zDga3%i?C37c6AT2kXBLi<*IG~SN&qdgjL>hD`g3DH_n<<8YW9kr-NCv=`&iW0p#UDbIF zXEzC(SX9#BsW$el@F>|ajaPCOX^VX6M}!Uh$FQ-3-Z8C^}-mvUf@g+qiM!F!7;+E?jABX}ZbwbJKh;fYK<7uZ5om$I$~8}FHU zU_{!01v;!ei^Lqn{;&)~oK4W?(xL3UJw*3fX+t{bnvxC?Oi6d>wH&;wiXN*u#-kHr zwzh!IMsc}oBtafMRdOb() zp0DT{7kYiY0V%P37;K~?V|hVXK9|Pw;^@@1>hKC$1)(?5o01jB$LY=Rx|;{0Xy3CU zasFzP5_WKfcEs@+B3VzNdbxRfT|tsm&m?;|H=sl@#9>n*O;Z{2QQuN+>AF7@gv`n-kFW)Ho1{zXi zK3(>FIIxjG}+? z+1J#m;QCT%u$fe=G%A=A6%3a4!v)!B8W0NQw-fZq^7Y_f1l4NJiz+iAqG)(?9`Cf} zEYviA8MNiI`g34Eri{b>voc^eUcL|a`G==wgyr)ebHkzMl`VO*EV#_pp9hz^7h6+Oy@HCs=lDV2+HtEpu9u}E1_pB)?WstNaY8s^eBh4iIXtlhdJh* zrYTiWN9l`ps*3BF2cJ0jqHUUtb~-~5Q}6|aqAKsBF4dQzoEwe)OF5C%c^8J0xt}K* zj=S3)OjGgmaRN?y|9xNGZHW0IAJnhp8mDM-()krzH z&V$v*ZVh}E9}jPpJ+!zkT18g)L3c%_2z`yd7M%LjLz(Mj*Udw5_3>ub>l;8W(J-Tc zUDDhVMe7>!hRQ~C(6my=a{E4jagDro-_#(ZZ?N4$-=uH;4{TtTe>9uN8~JQ1t6TK9 z!Q!92sjcCTiE;CBJW+Or$xZzCBs;^mP4Jq|P_;BspN3831x%h#=;^xj0riIKKbqe# z+VUy-c1$Ognq#;^@Bp!2Sv1s*uB~`4^&|Zdm>y{5Fnz2w zFDMSXJljgwIQhzS14(58@x&!@ytW8&TJTw8p(KKIMuak{!n=!c0 z(7LDi5aV^BpU^)B!{+UHTWKc?WKK&p^U_|NWKK(&q{{@K=$|6N??}K-QF429^3U|s zpe%0>%IEY)d)`|8LO%maiw=*jRmdN9)_7>$30-(8xV9b|8}bW&z9aA8&I}#lSo*G< zy0Lkflaf1e6T2ntJ3+;Lh4ysfW7Ko{c@$Kw^FJ==LPkNSX-pU1!A94{3o-D?M*9|G zcj;yqUIg+duB$WY)$Pg$p`UN+iqbCXmrz=XZvUjTtljZgUxqjQ!0ukd@9pjmBzIQL z-@}gYNE{D07Y1pgfa9RAS*Aqk%A35D!fO$3pC?+g!97f%gE6a1|IlF`I-hWWV)s-wVJP;tpF zj8B!}ev148S`^K5!y&%1X)g~4-(U6L!1wP&XKDKNabA<*&IsSbeGhehg14|CKT$3W zm?*pJERjgVzTiQwggO7ikf{Hz{{iL&NAQ27x@#oD z{1NdSe4iZE!`U#XK;53?wQaclqaxB*3H@ajHgIA9WnJXRJVx=Ocqgv^NfSo#?r{FU zFp4+V^uP2wsG2f1V-CoW=-FxiXpEe&$?P;Gj=^Lm#plE^ygsHCN8e*dgnn1Q_a7K7 z8Vg2&@X6|@u^yx3aXzC8#)raS1_z%{$7NI~Tmpp8wOuh&gpOaFrYsZiKHS+a3eS!4 zxlqJV$?g~+p_k%LQHLj>yPu)L6EQ^zLqT!NC;pe>oTCm8YnFd=%He*^a_|&rma3tl zoc}1;iqndzm}KvJsM}M$NjCYZ2c+BZpl%on_97UbwG-v80NK-S8uZc(ZQG=;rtvDm zG%QMdnva1+eDTw~8QgxZJk3*8m^qCg)p&;2Q(?_CGSSRucvS~xrjMTCjj)W&KApFK zTi(9uu)Zutnk+PVIxmBT<(BC@AN;?+a6_4AKwrv^wIsS8FO@d0M-p|L!Q<7(j2ucy znl^*?5>ZApeLsVjV=RmmUi*!O&0RLx?0@8xlvhUS51MtBPtZT6cvq1)O8h9 zu*&jc7vs7xsu)#~?$cF#0<38*-{ixvXLbv|NeABKzr#AV>31GYr&sfqtR}5E#G_d) zs<#FWU7J#07IE5J!l+}^rJZXqZt79YTHeQoMbW4)w_Wbt!!BzcTDO+x5)F)obZ9NQ zP9xe^M#ONVF_l~grcG$tIzEs!r5o$Ow3&2TGI0XYXl^7MDKug|?YsZ}T{{pV1$gZoJKh;NFm~TfuE0rEf*OU_>$o83X9zR$d7X0N7TpB8C`4 zsa-nkF~eXsdW?3Z^C*3|@i+#jPSv;Z__VzTE$K9>xtlx26BN0P7Z4+ikyLpbub@7O zk^C8*-3B*6<&ZIomP;bMI*l=sSU?|ZjKk>aDtVO&!r*62fI5qRNtBolmsF|Eej$vB zDvr-cXVYO^X)3)s z`$gj=2-#)Oo^gEY9Sq6Elx3;N?v(Yiv4l$P;q}E*V;POz!&Ag^@1h~aSYfMjLHxpiJ+AxRH|I<#}{$Q5l-p%F}Bc|cX<;N`*Z?3+JR-5MH4CIJ)X~6Zfy04X_uDf#Fa^gq$~9L zdpuF38{6pMduXNYZY%9Du!|?kfWvom;yqXp`n}KNu>7C5n`hU1q4eFxJGA0`UOA!% z0(*?TP!KL5^<~_p6i?=UblQCemMA#iGIKu+3-3|e{k({H-`G!2@8@Myxa=Dr((e6e zk^{y;y1btc5g%a#qumFP3y0{r50LnSscFKB}dpP{etrJgm;!NV%oLEgTI*H^W`)6T1? zjsqK0@C;J}Pvf=`v^u<4VaR_5Q&TCbxed;3HIBdq=d+_c6W+tIgLn@cYfKIVYHy)E z@O4E6;L2Lp@kH(V5$}}qd|*_FuiRM}5f~K^u2<5hAMr|=Hsa=)K%BJyGO>|z9pa_M z1-PrG9OC`OMQu3kI>axkmy9n_-4%!V7~QLqbgZp_3ba4Mr#)2WSAi8ynay#X#1e2` z8d%|%x%en1)Q$AbQJ9RSTWrl^c->#SUR*=q9lKVBzj4Fxjiu=02!Bf_vhjE-dYBiZ z@Akn%Zuh$^NmY9b<8u0~pb&B`o><5`R{p@M19g(Qf7fzxDUtrzGeoQ}khBp%I8j@s-RQh37IvY5Lwok`n zvl;xJZ_j1? z5ttVm$+H5_2Id9knVzrM#qas^kJ#tj^8+8H7`KeuRQX5#e{h}s=|>)|7=IdnQRZvB zKR52AO&J)a7y;tm~L`cwmB4)%tP!Kjn~!Db z@(1+iXg8datkFsthDr;E5enYotzgyZehY^{a+$F-{uUoDY%`8-+~V!!_KcaEn%{;A zd?Lz;C%VnkDE1Ew(nf!RNundooVX;~_$OaX-N1-?{spFaDYXGknB@c0lYj9iMP@TU zHN68>!$0KW?pw8^V|O5>8`70KJhnsuyH{>)F`<3+vWC(nXf zz@?s))WRBk%5c684G}uasVvMV3bR5BQ*d^%h&zSh{LI2#2o|N38*sxhi$OIn$Y5J9 zZkE7?xo8v77VTF+$7VNs49xn9vm<6sLml>-MS^rl4dEY#Kr$% zyx!zEo?05iHIonnSQ&S4;z%o{3DJR-bHnBR!CK+(25ZF!2CH+<)f=pp-N9O(8Xtt) zbaho^5>C$-`q``ku?N4>jgII>aEiXSK9N(FkuMfTHm- z%9-ZIyl#U@*sSnel=$bfLQ7HAtVZQC{a^ahwM^(s)zO!%%%T%kUh=R*78sq&p^k}o zf&@8WXHz6$D%p4)&9g4ED20Czd)~xsqOK=j_TYuN^5w=4@K5ab6VDdm_DQ+ik$rL)bQ=*zxxa(Q zQyrY22zAQN*+u+)cBFz^4A=H*DV`F{U5qz zvJSn@Y+yE|)6t@JmPP^7Y>b8)fLpPks*252Jx0XnSnrxmaEPf(jCfMIjq`k5t7`(Y>EB~2Ou0q zswM9QSd>e26|KzHl35{2j1^s2GEI&Z1syJJ%(jxtWGB$hY%c?OXk%aa>U4_}t>jrz zvjeOgJLANpGBMu?v!mJR!Alcjj>vtD@Jkb7pk>Bv!{^Zdvr7}IQt@~Z?OuzZtVVC0 zO{wu>n0s%6M{wE$_ap?dy8^S@-FOk7b4p0t9EnSArUa&#d=&hLaBBiJYmRGO{A(2= z=v*>9R2MZDxoLF*j@`-&7LGPYW8tV#uwr3$WMh=pXhm?WISZMv2y;&cBE@9t&~ z2b83<9No<$+(S(z zQ&I0f^J5^6&nxnX-jKI*Q&D7cJ`qWu=Y`(ThuA0_6*K#)6)8R+L~}pq<_I+cT?yw1 zTcFD#v3Fm@nS5x<0cutHHJ|7XL(cFhs8oY+T|~E*qBt$jFA6y~KV0wUmRj6#&`a(Q zO}R+{-2N-Q^p^D(58MG^6vS=C-W?EdVjqYiq*u z_a28PkBi3gd|4EmMWah%qJh!(@2_zviW_Jz4r58V%%P9cQ~y9-=LUy1{>=@325t^> z7fQ-abd}*)?o=u*8bvS!9+yY^xb$R5glCSZC6yfW3GGk%94Ru7083o*fpPUd20rau zEn?jRfHnF;7~L9;=9AYyOfDlbu74o4Ec%as_XCxvfWduxj3_qgWpkwK*qh-lZo&#E z|J3EEfa5N1VvcYq(sCs!ubD6kI+T#RxH-n7yy>M`ZI1OQA$M_eoJYxU7dK%=lz(c- zUEG9C(V@T$`P$}j)a<6fE*=5&v8(xZH0&hRLwJj!P# zoLik-A$M_emj4`Qy+r5CXT3yn_f^*MqWPRh`O>3&WzO~}A$M`}d5`j)m*$E&$D@SY z#m%`MCFCw{&U?sR+??+v3b~7$X&&WwkM$qs0*?}M7dLVGUH+*dcX4x(OL@fg4^wp-t7qC+w=bA7H*nE2?7-eTf&w+_5ul(&8p&rhqUPn=hM7D7l8{ zgM-5IYNG@bhF%dc%;ivKR$%%1ifn<<1xV(rbghQStG|S?`5LUrF*Sue%ipf1=*r%p zZ8f3PtTb1VQ46cZSCHmSb2SW7vV|JD%YbRMM6QVCh*@L6+QwrMd((}%QBP#0&uXD5 z)*^bHxt?y;64fF$Ah6Ng1d(|I75hu3jiENRMXbIVF>je$XiRO<#0k7@Zly!D#qbCj zlWxj^(+y?xrQ!8NF6vVU_p5I=chH79m<@Nj=7L@3Zpu{`;dh*szP`uY3m1+jDZVb$ z@lAC_5%}Rq6M+7%`5q#!yAetCM3LC{16>>yK;B)`Hqb86CD6q*Wy$-^52$}V(OGORz8E5om`CZ)`l2;9haC&Uaq|QXYJl*^P8g?P&omHi z*(Yx7r{*bY-Vm|agq7yxw^7Pz^K;tMP*m2xK;Vpdc2OfV);ZwwCPtBV361r&+pzJC zMDB=-h`D59G#O>@i?OM2V>J0!i2mCAh7LCp!)+P(*1QY{^V@X1ktj>!8;eR#lJCqb zw5ze`?IgKsVwhuP4K|i%&>8v;Fc{K-VFvAXv7w!B#X@QcC9$t)J!A@T**a$bcKb)QJ3fR zL1g7_Q0?+J7kP!JKu+}a#1^)z{XvEyN%v-=40TDy1&_EfLluIg2isxlFb~CW4}G5kCmX0+M$M? zQdWR+w8yV7$P2finH8X^?L|Ru{+^Lbo>p-5GvvBoKPy1BJBWOaz9p~Tf|6E(mUMuz z)7RAKT8BreYCSq)<$j-*wzVTFbiaa@NXLn3ErV-R-oPYr2f7UZl$ z$WkJqlC0EOL&x!HfG@ngp(_zjajNk329@NvsZxPL)w^y4QwY@NE@>z z86GL5jak?na1w>IG0Q)?7}CZp82g~e?eWsN30N-r~` zpB7fE6{qH+w!KBm|Mg;*g85;k{|DDc!l_ckIfCgJK-!@iL3*YSRGZ@11_GtGUDC=8 zxeW0gNK9K^(Yb$Br-6M%lwDdLKlAR1gmJ}&mTJkQZ6JY zIu8jK6bPAg8rPL@D=8ztCoSBwZCJw>pqWD-lo4O!bek_DLg(5rL3u0rJHt@&eTUny zl6MccWvt&5X~A$`Jk)X5?}>D5Aa)^(JdR!=Z)Ai}=&WL#tFvg`UpGLv{R3zih(fH9YZ9l9R zl*$l0;a5V2iyf<|J3(ZK9jll(i7fYo%nGZxM+u1?tAs}hi5&|DRQZ=7b}U$F9ZH7S zDeY0h#7-HHlp%J?dXx;YQ_iDgh@J8tB}42~@F*E#r=my65IdDTN|@NG?2$6WP8E-m zA$F>Ilnk*`&7)+9o$4MXL+sS>C>df0?_K_>8Dgi_!(yklmncK*)bS`8VyCW0$q+mB zJW7VxsqaxT#7+Z`k|A~)J}h<`d5JQ_PGgUfA$H(dB>&V5vD4I}WQd(+F6IAku~SSW z;9TnY38D&T&E>h&Tuc`=g%z*-lwNg;z-iTFmuh0AVx?HA%66JMO+0Xl?or3MaIbj7 z@B>SKdyMO;XN2_Ty(GVuP>t#MJ+Ky5OIkHu{M)P5t4Dl4FRDKS=oIBO~sBNsaXlQLN7Vj@nm${<1XlJ#jObh;Dxv_M-F+8S@&co%k z|K#vg{353YI6URt>Yj$5QtM!K{C`#6my1wdC#y5HBJAM3MC%EnrwfkS+@Q!8guKIj z-V0(0`;kh#2w%0XxN!Ui-F;E)Rl8Z;(Ms>Vgj$cJe|TK(Vf6%;CtpUP z|Kb2Ej<@CuTD|ni=w`3L{B$(!#5;Mo{_x4x=IUCjx7CLxEfpPEUpli?%v3j6{Xprz z47U0u_wHK#@e`8uHuq?)hE5?aF3vAnR^}8>Wf3e zo3a$9hOdj9>Pirvz~L+0=KmEu@?Ux#x=nv;1Z{a;bdGovkt5|#T?PuEDbC{TbRin> z4bK{B!5(gnvIZii1U}^)-}2dSAn#~v46S?v{d;U$su87FfHI?p4!c!h$n)NgdT?N839$~sQgDy$}E|hk7%(9-P)HgwR&LhmWo~L&u zVNTkxp(tdoHIK@y76aLQ>HTIXucEqX)&knGTBNAw%nN9*h&6aiFdw>a371I)jg!Ls z!aR$(-D?rI?!mZ==9hll8b8i`yH8pR@pc!ilW%vCMM%|UgJ`P{LaM&j3-|w4f+eX> zSTEw5{Ax~$k=9G{mi)rfH$RujMhI)M^)gt@-}tXtI6ubV6wu#VB5&Joq%P$>z{}bU z3v6E+uo?Q)G8*2R_QVJ){-AoAzU|EecCKQED3n47Iv z!TaRfqG`?7++O)QdZnWlh3v%^x)#9oBc z;=12-EI&q~!?sR`$Jqe+UaWz%JstMOQPvu|lMd_cTCbOkw$@SqZRjQIY0ozNNa{Fi z1D)T79ZdO3CQ`%g_yx@=)<&Z3q8-~rH@1rf_9jG4vld{a<&n3R$s;R~v}=dRX1|4) z=@!&8HwO2aMUuV~LtqxH$ca1A<=>J+z_4bUyRoiXPZM{+d-tQAB9U!zBj%cWVJk^+ zBdYB}1b*yS4w^LcJsP`9w9UCS&^)w}EG;Na;Mp92FtpO?`&|%2+o;NJ(Ounc?SNfn z#colWrBbQ=uuPT|EhR|8m6DqdjM{5vOaV{5$k{pidhF;P~7?`tOAEnfx}J(*by0zVvl;oA9IU8 z?qtI)G~M^2bCk0_cG;A-PP(9i^@$5ATA#W}D^cV=BrRfn=0+5=PP?GE^|@R0_4o1Y zUsz}GOOSWpM?1eMI(1?9yi7gP{$IRKZ~;71>m@cXdo zVFjE;0bjTUd@hqEL4R=G-&wDKb1s*%;=BvWi3={f@>BxJF-$JG5f#OkE~q5F3N@Z? zoK>xJD5EC5@Btp;rjvx16qLFXORA0gg(XTUIo;M&;@mQoLN24SN*NcFQ!2Qiyi(Hz z6_ge(sHhBZK_z9N19))-Cjj8Mcph)m-FNntlN|5t#=Fit`^M!{ z-ul)B6|BoHsAzrXf=bpE7ZkCsx}cc#y$gz4KZHH=cGddPy5!J7QN zW$PVGs5dF)sEAVcV8->}-as}V?h9o1;k$tWK73DX^x^wrvk&)+Ek67}Z1v%XVw(>S zSU&-lJciN^T0i^nBkLDG!4XskR}UVAd!6ZmDD@aBY%is(A2oRK-b^MSz^-%y?cY^?RC^%qS(DROAm9qTS|w-XZIvjf26Pl%X!=4XBu zS!VjbR29JQivy;r7s z5uYJpskA3-(>5sK6C^9A#00ju$v#H1$>GVKv@IkX25#-g*tXAY3X&BHPd3gD`f=Ft zgY$aELkHfqnVrdHfB!Q@2eet%?{+5Ha8YVz>o(wDAB&hO5%MSTWUUM0QzV?%5j*nH zaYX}xOLi9gNL|WFQB<-1#II(enemg2%E7>vMV|^>iE|R$1RO=61&gTj(MVaHM*0km z1Z(mm8|e!)QZ}cN)H7&^Y)(T|JBxCI>_~$|QaF-KWrl3(Ypf?k**g0t0r)Y&6YL(RBP%5mk-s7#mh_S-ZUW zg#RL`{*s;Z@8axScB~yoHP4{kbKCKD0@XZ)esj`Jw3A$J#lWpv*t6=V>^y#4al};) zkNe!t>&HEq&(3G(w+qlluvZJ(g>2l*3rJN?!Kj)4Gm#~+xLv|7=9XC*e3QfY+9mB$ zb}>r$3>nrSLk{@@!haCZE@zi_Ip#<*l6V%yW7HSvMu#)1z%whwXf7C4tH>k$WTTPn z$?#;Ac!VD}9&y9M<0{)#ToySrqqJRB(H5Nsw`z8Ezl}R0N5(7=9k6TIHSJpNll_Lc z`zl`BuA|ggpk&8eHhS81(Tj$i##^pu*H>!La&T4~*bVJQwETj|QJtN&8{053$+w(_ zPxbJ6HMN`B&E2?Kh$|NsXI%^!cCsrFE(J^}U7);Q)J}4+q(UeK^D(>ce67a34NyKjFg>_DCN-X^-;ZXnTwg$J*n3INqM%!-@7J zA5ONX_;9NIlnBCj_n?77^uW@^Hl)Bbl z=fm~(1|M#;H~Db0{gw~6*l+uAtDWw{ZT5B_?yz_IaF@N?hws>Xe7M)%=fijH_k8%i zz2Ao)*dO}vfPK)1AK8a|c-TJT!=v^wA0D?)`0!)g=JH`|FwTd$gYiC02qyY4 zDVWEHd4u_Um_Jy+hXsR$d{{VG#D_(L#e7&iSi*-TgQa{}I#|YsWrO8>SUy<6hZTdB zd{{YH#fMdc)qGezSi^@kgSC8EJ6Okub%XVMSU=dnhYf>`eAqbH#D`6T&3xEAnC!!p zV5$#W1Y7#BRj{=W+XUM}OE~@=-f_ENdmnZPcJyJVU}qn833l~iw_tZ4_6YX$VXt6s zANC3M^ln+M-$M|q;aGVdv z2PgP&VsMfVCkLnaaBA==A5IHC?Zan+(|tH2IMau-g3tQ!x!`OcJ|CRp!@0qEKAay+ z^WlQvLLV*)k`G@9zUaf3f{T6la&UciK9ulw+g;7T8^3ce|I zMfnO>2iN#;ZE#(1y*qd}1ULF{Q*g5n-wJN=;oHIguded|x1ze*|Fm-s-ZT4rh&m{i z0QM3Eqhc@E+oz(jE2tP1OVD5e4TGqNCAP%a4H7l>5(|O^yHTvDSP&HyEZDJQ``-7R z*)y}x`Tys6Hh0Z$t-W?xyUm<)x%XRfQv84wC&yE)_+UKMivNkHS@EIxVJkioKWfFt z;>WG{MEs-`{~JGL#i!%xR(vLY){4)?&s*_@_(dzuh+nee%ke8#oEg7r#nKXLqx>)%7q-SaC_Slob=x(~3)*WvtlCENjK(%<@)T!TiRG zy-go0_BAV7aV4{|6<0BzdzLaXquX6*n*g zthk}s$ch`AO{}=7+02TYn=P!krP<1g1I^Y}+{SEc#qG@YR@}ktXvLk(&Q{#T>}vk^ zvLW9hGP{}Gt+9dpV{Av2bcq`c#t{Rii6D%D;{DFwc=rB zs1*-4f3V^a=140ZWrkVtXmgAek2S|x@sDP>6^}P3Sn*G0gcVOTCt2}ibBYy5no(9f z)tqL=cbU7b_-}KM74J3oS@C`|$%+q{$yS_V9<<_A^B*ftGY?tu zVe^O;A2p9z@p1En6`wT!wc=CeX)8`Q&sgzU^PCl*H!oQ6MKi;SFPWFE_==fn#aGR1 zR(##OVZ~YIO)JheZ&~qe^Ntngn7LMb*Su%Nd1k&9-!~sv@k8^G6&IL~t@w%g)QX>( z&#m}{`O=CD%~w|Z+I*9Xn|*7(Gx_Vj_ID-b2eat^tNYRXWWML?mZWZeHox$>9n!BY zk5bP*ek+LZ%@#h^jz=0-d8}>WPs+<^zgnwqjfTKzK-H+x>SlFkx9b*bb=h|a{3gj6 z)qG9w*;ah%@Tlj0#(SX^XH~%4HE->zRjXCJquT+xRja!0_%3<={%!_z)puL1#alg^ zJ6<{`>RDT&wPY?W)k<=yXKU$PTBg-2mzHfUXF}yzzO_Ow{ifABm-@8&=F*C-m9SLe z&Bl^x617(5*J4_$p!jY`5x!Q5AD#!zs?zWk88zK1n$@LQN9u;m)AF~;pnkMlh z1$QgDm*s60eW>7WMIW>r6-}!(x>JfrRnIEFyWnm`@3FkCqW2Ztt>`4n%Zj3W#B6e* zaBKP>%iFrN7rDP;dqurl3(krjgfxu){R0cmuaK2|*H)SjqVNGI4n*2U8Fo{_2jll~ zEZ>gYTiQDEhu|LeejxsL*-x$5%a3=3?0Z#s=4S=#Ck=*H9W^(T;uK^!5|NSo6>(k$@7v9xFWFmi7r+Utv?SL1#+q`k=fgT&L-al?y>6Oa<` zb``*$nC9>-G;A3Qz;^-gSJ7b~z9@V2gpV+IyCSV7u64!FzE@f0T33Ad53s7Gl?+-~ zq+r*VjDUleVJz)!dS2v1b9ZV82tIlJG0pKj(17KWSyLL56S@81I0zDpFF< zTKr;GQ+#g5&(6rtl_T;~b0+TnRh%JUS97Ep}2k#D6@TTnjXVBo3E#3-A zqdHnq1v6%xURxq{LrVO2YAkAyJQ({O7{Yq|7$W zGDJ-&Mgj6FGkhXGIl~oxtvEg+4AHuh`&w`U`e7yM2ZIbfv{+$(ea=-;Kho zDk4uAz=OV39)4W#L%=sd+6XBLuP!)aU-0-Aam+G>U}NakqkVi+W{>y>95AKgMk#*Z z!H0-n+`+FG=cso53?&a2>)`v#{(R^R%1z6HwMhg|<%*I|REE9bh%GMpz6HO`;d_f? zDOQgb_9h#ogTb#V?Ncu?+H3->)Bb*?0(=kah~cRee6aYhZg)ShaV%(hRtyJapLF&|3bvS z;%K9rTsMdVb5WpR`?WgY|lZ&^M9G)0V&vZ7djd47at3b9j#)2ulSiAUHxxy z_T1}^{axY@gB3l^_$THLDSoOd#HWh0Le8`?w~+_aF=e-gUD*H~#lon42{*44_9Gqp zuXX;HqdOhNLKR%^DBuh6EjtSMOnh5Z>Sf2zCxsuk;02bap>($qnI{DYmOIV%5g*Z>!Q3K#AhE^xPi6Ujq%>14;zpTq}tjFscXPXosxq*Cx7#ZO0wZ{+#EtkIvPcmN7_%|BKg zXT5C6gtIJUM~O3*pF0H{A^tG98~eixUN!*nPt0LbVEVPS>=1Fp-rvS4U~pmYj+Fxn zKFYB_nw(>$&Cg9b|3?@UZG%p`V#qFar_C8EfZUxmIs=BI!MAVHv!ah-aj^}#Q8{EwAA8XO$J_?I!$JdWsSIfrL!`>7p0gariC?D&oX zt`&!UFv#(9wfIdH|JnJ!d8HKS&bF@Bp)|sDvhy{YmQ9^vYpZl{oqB7BcJOSpU)#Yi z(n=R$I<<}J3s@l*;LhXb`Qn^T?(8^Md}s$BFTNQ#dbQHi<8piSzcY`UXG$>v#xCDq zoXe=o_Z8x!Ph=?L~5 zy`Db{$xgo&$UVirHUTnQyb;naNJ&?AFu{|t&sjsxlqOxTsbG$FjL1Tf_=5^QD(7<4 z$fh5*XxF|=Z$=_=YtI6buBYfnoV{TSPP+73FXd?0G%FQ49Ex+>EqIvi5wvHo4M0-Q zg&JJ4pX%`MRPYTQ_CFMSD$oCgqi7Q;{*_mVoGJ0=lZP>;O@w>KzYn>ml`*;KQJ{(6_7rZ`fNfK#=s$o=X7Epn1L;*TlMf1Qv#y!_>o)eRLcBWeh z&aNikTYNy#fPpzz1H5dI_JaLOIhUX4Wu5<{x6nE#L;Wo}QiYrXe7%xkg>*b$7tVHK z!Jf_ywWZs6b4|4v16IdvteoDKv~TuPMdx7rX~`@UQ8vwbz!8_&b&$4ZhDd`hgd-jr z#aAV7=vZA_9()|`*GAfyysq7^h5^g}Kv{eb@i$fQ+h{OWM{xAN6pfdu2o6V0_k-fM zNL)1VpZcl=oE=Z)obgY>MdY>J^Dd>mc;gN6)4K)CX!kfXo(HZN5SlYHIRBECE=!WGzWYs+!wsty5xFkwFUU3WfhS__%jMda#IUtJoWhe9|w$ywQ?O9jXtjVSHA)T6Z} z;0NQP!k?4>4Z-)~`M)TjOHZjabbDKd=am7y5IpKQnjwA!_y~u;AdV0OT@HUj{9-hC za={V*q)VSr)^5#XR#s@HGO(r>6&Yxs4Z1_K7E~Ibr`;MW^owIZO@59Azsunt>HJ?q zje_kQ#fQp(k?w!v@af_Yg5U4(55#A7G$0#{tf?$Ohdb zswf=!T!hMkpA_e;*|^I66U7I^p0lR(lRhp5L-0v8Lzg}ms9gp=*5QxJ9w8`Z0SijH zv`6qiAoUkI_7BT`KDZmQhs1xy`13h8ixxynQV|USc_#C)q3 zEXrG4*hf9cgPXzE%I#OAy^qn3b%pBz=DkOTg!8|5fE1h_3_)L{?nsHB#S)=W3re0% zSN0rdN5Q>=m%)2#60Yi0B?NQ1|7o~owaC_3^#ttc|CgNA0ow5lUd&vN3gIQ&@p z3C=@>-m7x|8S$Iixp#=p|NLy1dwZp(+JyXT+qpNCj?_b=s`lQ|1;5DQdbLyg5{y^T z6VbA&&|eULbrE8b$84b-F++m1Or8?|3-NQ%OI!sD9%d`%u4wfL@SaGT9idjt8u=v- z*NVyibx*UbC(6$=XvvfU-B)q+jtYJgjDxN$;O&B+>u??2I1q!y9R4QldB$*fnuOXU zqIJ>LZiY$B5bfN-?;{VeOmmJ`Ds+$d2Oa!warT`~rR(FqEOhyTkVs|GuLE`xV@2K=>s&dnj)h`d_h(hDm|#)@^ZkfH)4N zZCsm8eXkBaSoY|hHv2=w$F}n{)CyHcSG2YGaAoLfZ*g?4I94*(KGK^G{>6ph_thSX z#>pPrt~-XJGsV+2+7;nGQqa+fjw5YO>bgrEu1%=Uo^!c2A^y4HwhC#l5r_Y@GPq7r z!TmZiX#cL0yA>KC`|UgU3E~HL@ZsX{QSpQLC(&_IFve~Rw96^RF4tyLXN+AwNPZY& zhlf9j_r~;F;Pf26V9NQQUw&^0gOC#c;?}D8$qNI_#~AR2A|?Lb1)oyoja@DGdxJM% zyD#m%KIA@@b-ysi?14IKuYIMUV+SG+i0sz#m=Zt;MW;a2o7> zMmj_G2a@w`3GF>hPd^mjSDc4hUf;2NE}cm;EEF4NitHOq%`M3N7!2{$R!xUVq@ECe zJLmEftsp-J>~y40kWNHOqPxX^%=riSi5>(`@1er`6}26MpM}D|v2cXi>m&2s@iS@e zZn?h`?%zP_PhMYNejsY^!1n8nA&-_O_dkSx_DspA$AH*7iWv((@ zgbMA5`+`S1i7y1>^$^m9NJ+Fq!7s-Bw1RI#9{n5l+6` zJfEBoBkEC9EPKNejwi<-JjAyy5r3~#%uoS9;Tiac-L@i95~^j8vO`G8kEFf-$Gk%4 z!C)oXA1#hS7uIlJaPQH={?MH3^WVh(Q&BJn1v8w3lz2ai{{@c7&qZ2~+&@!}ega>! z%Dr*qTwYZ$eW(H6MTPw#Uv3->XLA3VShjF(?Sv5M@6_e(jTB0jl@bN;Y#9|N(HAb zX>MEa_jCI*$m_ETKO5uz&q%9?XCX!?`O#d#)1@YlE} z&qlRk%=J9FuF9JOXwOPVv+(m2q?3`7=EmX>d33Mv4ark}w=d$LVuq8D67Mr*U`;u= z$P_bw40&)CD)dp6hZ@xZrd`ApZbY7vFq_7U<@P0im45iJ6AecED;XZ9f)At7eU2lo z)#No+sC4wYDvH&!wr7fyH+$8 z_rs915H+?I$8C)(Wx=D(EU)*;IejJgO(8Z6+pQXQ6c{U&n4eoIyA+Fot7r~n27b&E z(Ls>`zfDAYtOXHQ#)5b2YYWgvc1J+Ra3+CvzhDR|%0YM-l4eKHOa2!i{wjcq!AME4 z92L=SdBNldi6`RNRD8Cqux~C&9`r(GzXm@9X&u^k{VaRT8lQ8%;H_H0?*Sje_-mnP zelNvW$Up@vGY%);Wv!W&cS{%LN^0cKhnp!;F$*_nS zxRcektMb?@`14iX{K@kA-VWDb^!J6I$E!RJXz!;`)OV>WnhUAmRp&-iv>=Ye(Uony zF8(Mu7o5_*Tfw2L@Gk4Wks$sRMQjV8qQYC`{9b4Ml`3y;ZwqMbXg1n`#~elK}#pAP%? z#qUcyy68hG-T;psNB_<;lwFti++E_QceMBu%iCH!OB@xA_JIGi7}c#6rFfvdrtt>k zbxcYBZ`BILJ;XWZ&#Q8yHJ|puat=?dpWynE^ZWl=!)x!N;I&ExxC*GTrs$0_1g1M3 zMLVKf2RU5pg!n9nYh59)AL?)}M5!Fru@hAa(8|RO4HRDCTIo1D+$Gj%WeolW{q=uI#J^I2wneUV4Q`V~XkzVVJ_ceN|A7UB-P#L|zY{;IgMTBA zDO^-E9fyLF_$w)}u+*GgF8-37Eo=P2snF-LN5O6UQ*jjB#y=KE!EL;|&i~OZ?XiqM zV1`<=gX^SJI|dvZQKg68qrLn%v5)moD?cvRgH7!@#NTyfbO7Posqo%v0cHgjP~W;^ zkoFeGh;|2W>o?-?6Kz`c(^_8qWXz@|$Qgfyprv;*^@+IWRm8rv3^O#s3|DwhIl2aX zykoDY>H04ne2Jo99Q6x7X@Xy~X3J2c00Xa3BxWb^*HP2%4&R~Rmpgnr%Y)ty--f(~ zRWW+p;RDIj`r1(L;wZM1qfs3p*xYirOU^O=)vIRF#NZF(D8{!wX zhd9n=8Ft;&jaj^lGQ8Oy`&fgqQNtj;$tghZ1M0AM$3(0_+SsUl@WvXX4bHA?)}a5h z6;PwJF%$}3G|0F{sT?_@J=P#4cSn1yLE5;ogKLnIyR#{cHA@RPB(20(-PjmQ7qcBs1V|x#5%Dw zu#~p7OeYp`w*`Y(unKTP^S_q2HQ=^_JJT}83ksA^M{Wz6d$(3c4f6|wKKn2!@nZ5? zkSX|V7|ey7gdbV^;3cquU^j?gK^|;_%}VnpJsAAH9Q(G67a3j+Mbg9>lh z40W7{^i7t(%6=8uqj$vbhHho@;9P6pXnCHt3Y?(e4 zM^WMZmfZh4LUTpVS0WFVB#%Br!LXCP90jM#4=U6k9|2qSP%v8db36DM2?Q^jvB z_*C$8twM3TRcN&kJ{$Zt*iNB+ zbY*KDyT2&vKLIAj`v7t2~<6>Yv&3-^H+1M>|n!{ch4D z+eZiWY1B_RdBCufH@eIp7WMM`U$)s%(MgjQ9Tn}p&Shh-z@Lc;u8NkJH1x`7VsqK> zxc(b>^&^fSaP0d1yl%(!A29gPk?Z{tU*GIMU{cQ;qYL{@I(1I8YB1@G*P{*UlXiS3 I>a)iG0nT15p8x;=