From 397d20b04c1f0769b1f52adb3f3a16ac464cc654 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Physiologie=20des=20Cellules=20Cardiaques=20et=20Vasculair?= =?UTF-8?q?es=20-=20Universit=C3=A9=20de=20Tours?= Date: Mon, 23 Mar 2020 17:00:03 +0100 Subject: [PATCH 01/18] Kodi 18 compatibility & bi-directional synchronisation --- repository.betaseries/addon.xml | 8 +- service.betaseries.com/addon.xml | 8 +- service.betaseries.com/betaseries.py | 1030 +++++++++-------- service.betaseries.com/changelog.txt | 4 + .../resources/language/English/strings.po | 6 + .../resources/language/French/strings.po | 8 + service.betaseries.com/resources/settings.xml | 2 + 7 files changed, 602 insertions(+), 464 deletions(-) diff --git a/repository.betaseries/addon.xml b/repository.betaseries/addon.xml index 4047222..05bf1aa 100644 --- a/repository.betaseries/addon.xml +++ b/repository.betaseries/addon.xml @@ -1,9 +1,9 @@ - + - https://raw.github.com/skylex/xbmc-betaseries/master/addons.xml - https://raw.github.com/skylex/xbmc-betaseries/master/addons.xml.md5 - https://raw.github.com/skylex/xbmc-betaseries/master/ + https://raw.github.com/PCCV/xbmc-betaseries/master/addons.xml + https://raw.github.com/PCCV/xbmc-betaseries/master/addons.xml.md5 + https://raw.github.com/PCCV/xbmc-betaseries/master/ BetaSeries Add-on Repository diff --git a/service.betaseries.com/addon.xml b/service.betaseries.com/addon.xml index f2ad4a9..9c362ac 100644 --- a/service.betaseries.com/addon.xml +++ b/service.betaseries.com/addon.xml @@ -1,15 +1,15 @@ - + - Synchronization with BetaSeries.com - Synchronisation avec BetaSeries.com + Bi-directional synchronization with BetaSeries.com + Bi-directionnel synchronisation avec BetaSeries.com This service automatically updates your profile on BetaSeries.com when you have finished watching an episode or a movie on Kodi - Ce service met à jour automatiquement votre profil sur le site BetaSeries.com lorsque vous venez de finir de regarder un épisode ou nu film dans Kodi + Ce service synchronise automatiquement votre profil BetaSeries.com et votre base XBMC/Kodi all http://www.betaseries.com/wiki/Plugin%20XBMC diff --git a/service.betaseries.com/betaseries.py b/service.betaseries.com/betaseries.py index bccf2a5..33de54f 100644 --- a/service.betaseries.com/betaseries.py +++ b/service.betaseries.com/betaseries.py @@ -20,489 +20,607 @@ from xml.dom import minidom import simplejson as json -__addon__ = xbmcaddon.Addon() -__addonid__ = __addon__.getAddonInfo('id') -__addonname__ = __addon__.getAddonInfo('name') +__addon__ = xbmcaddon.Addon() +__addonid__ = __addon__.getAddonInfo('id') +__addonname__ = __addon__.getAddonInfo('name') __addonversion__ = __addon__.getAddonInfo('version') -__icon__ = __addon__.getAddonInfo('icon') -__platform__ = platform.system() + " " + platform.release() -__language__ = __addon__.getLocalizedString +__icon__ = __addon__.getAddonInfo('icon') +__platform__ = platform.system() + " " + platform.release() +__language__ = __addon__.getLocalizedString socket.setdefaulttimeout(10) +debugMode = False def log(txt, loglevel=xbmc.LOGDEBUG): - if isinstance (txt,str): - txt = txt.decode("utf-8") - message = u'%s: %s' % (__addonid__, txt) - xbmc.log(msg=message.encode("utf-8"), level=loglevel) + global debugMode + if debugMode and loglevel == xbmc.LOGDEBUG: + loglevel=xbmc.LOGNOTICE + if isinstance (txt,str): + txt = txt.decode("utf-8") + message = u'%s: %s' % (__addonid__, txt) + xbmc.log(msg=message.encode("utf-8"), level=loglevel) def set_user_agent(): - json_query = json.loads(xbmc.executeJSONRPC('{ "jsonrpc": "2.0", "method": "Application.GetProperties", "params": {"properties": ["version", "name"]}, "id": 1 }')) - try: - major = str(json_query['result']['version']['major']) - minor = str(json_query['result']['version']['minor']) - name = "Kodi" if int(major) >= 14 else "XBMC" - version = "%s %s.%s" % (name, major, minor) - except: - log("could not get app version") - version = "XBMC" - return "Mozilla/5.0 (compatible; " + __platform__ + "; " + version + "; " + __addonid__ + "/" + __addonversion__ + ")" + json_query = json.loads(xbmc.executeJSONRPC('{ "jsonrpc": "2.0", "method": "Application.GetProperties", "params": {"properties": ["version", "name"]}, "id": 1 }')) + try: + major = str(json_query['result']['version']['major']) + minor = str(json_query['result']['version']['minor']) + name = "Kodi" if int(major) >= 14 else "XBMC" + version = "%s %s.%s" % (name, major, minor) + except: + log("could not get app version") + version = "XBMC" + return "Mozilla/5.0 (compatible; " + __platform__ + "; " + version + "; " + __addonid__ + "/" + __addonversion__ + ")" def get_urldata(url, urldata, method): - # create a handler - handler = urllib2.HTTPSHandler() - # create an openerdirector instance - opener = urllib2.build_opener(handler) - # encode urldata - body = urllib.urlencode(urldata) - # build a request - req = urllib2.Request(url, data=body) - # add any other information you want - req.add_header('Accept', 'application/json') - req.add_header('User-Agent', __useragent__) - # overload the get method function - req.get_method = lambda: method - try: - #response = urllib2.urlopen(req) - connection = opener.open(req) - except urllib2.HTTPError,e: - connection = e - if connection.code: - response = connection.read() - return response - else: - log('response empty') - return 0 + # create a handler + handler = urllib2.HTTPSHandler() + # create an openerdirector instance + opener = urllib2.build_opener(handler) + # encode urldata + body = urllib.urlencode(urldata) + # build a request + req = urllib2.Request(url, data=body) + # add any other information you want + req.add_header('Accept', 'application/json') + req.add_header('User-Agent', __useragent__) + # overload the get method function + req.get_method = lambda: method + try: + #response = urllib2.urlopen(req) + connection = opener.open(req) + except urllib2.HTTPError,e: + connection = e + if connection.code: + response = connection.read() + return response + else: + log('response empty') + return 0 class Main: - def __init__( self ): - self._service_setup() - while (not xbmc.abortRequested): - xbmc.sleep(1000) + def __init__( self ): + self._service_setup() + while (not xbmc.abortRequested): + xbmc.sleep(1000) - def _service_setup( self ): - self.apikey = '5a85a0adc953' - self.apiurl = 'https://api.betaseries.com' - self.apiver = '2.2' - self.Monitor = MyMonitor(action = self._get_settings) - self._get_settings() + def _service_setup( self ): + self.apikey = '5a85a0adc953' + self.apiurl = 'https://api.betaseries.com' + self.apiver = '2.2' + self.Monitor = MyMonitor(action = self._get_settings) + self._get_settings() - def _get_settings( self ): - log('reading settings') - service = [] - BetaActive = __addon__.getSetting('betaactive') == 'true' - BetaFirst = __addon__.getSetting('betafirst') == 'true' - BetaUser = __addon__.getSetting('betauser') - BetaPass = __addon__.getSetting('betapass') - BetaBulk = __addon__.getSetting('betabulk') == 'true' - BetaMark = __addon__.getSetting('betamark') == 'true' - BetaUnMark = __addon__.getSetting('betaunmark') == 'true' - BetaFollow = __addon__.getSetting('betafollow') == 'true' - BetaNotify = __addon__.getSetting('betanotify') == 'true' - if BetaActive and BetaUser and BetaPass: - # [service, api-url, api-key, user, pass, first-only, token, auth-fail, failurecount, timercounter, timerexpiretime, bulk, mark, unmark, follow] - service = ['betaseries', self.apiurl, self.apikey, BetaUser, BetaPass, BetaFirst, '', False, 0, 0, 0, BetaBulk, BetaMark, BetaUnMark, BetaFollow, BetaNotify] - self.Player = MyPlayer(action = self._service_betaserie, service = service) - if service[15]: - xbmc.executebuiltin((u'Notification(%s,%s,%s,%s)' % (__addonname__, __language__(30003), 750, __icon__)).encode('utf-8', 'ignore')) + def _get_settings( self ): + global debugMode + log('reading settings') + service = [] + BetaActive = __addon__.getSetting('betaactive') == 'true' + BetaFirst = __addon__.getSetting('betafirst') == 'true' + BetaUser = __addon__.getSetting('betauser') + BetaPass = __addon__.getSetting('betapass') + BetaBulk = __addon__.getSetting('betabulk') == 'true' + BetaMark = __addon__.getSetting('betamark') == 'true' + BetaUnMark = __addon__.getSetting('betaunmark') == 'true' + BetaFollow = __addon__.getSetting('betafollow') == 'true' + BetaNotify = __addon__.getSetting('betanotify') == 'true' + BetaUpdate = __addon__.getSetting('betaupdate') == 'true' + debugMode = __addon__.getSetting('betaverbose') == 'true' + if BetaActive and BetaUser and BetaPass: + # [service, api-url, api-key, user, pass, first-only, token, auth-fail, failurecount, timercounter, timerexpiretime, bulk, mark, unmark, follow] + service = ['betaseries', self.apiurl, self.apikey, BetaUser, BetaPass, BetaFirst, '', False, 0, 0, 0, BetaBulk, BetaMark, BetaUnMark, BetaFollow, BetaNotify, BetaUpdate] + + self.Player = MyPlayer(action = self._service_betaserie, service = service) + if service[15]: + xbmc.executebuiltin((u'Notification(%s,%s,%s,%s)' % (__addonname__, __language__(30003), 750, __icon__)).encode('utf-8', 'ignore')) - def _service_betaserie( self, episode, service ): - tstamp = int(time.time()) - # don't proceed if we had an authentication failure - if not service[7]: - # test if we are authenticated - if not service[6]: - # authenticate - service = self._service_authenticate(service, str(tstamp)) - # only proceed if authentication was succesful - if service[6]: - # mark as watched if we still have a valid session key after submission and have episode info - if episode[0] and episode[1]: - # first-only check - if not service[5] or (service[5] and episode[2] <= 1): - # mark as watched - service = self._service_mark(service, episode) + def _service_betaserie( self, episode, service ): + tstamp = int(time.time()) + # don't proceed if we had an authentication failure + if not service[7]: + # test if we are authenticated + if not service[6]: + # authenticate + service = self._service_authenticate(service, str(tstamp)) + # only proceed if authentication was succesful + if service[6]: + # mark as watched if we still have a valid session key after submission and have episode info + if episode[0] and episode[1]: + # first-only check + if not service[5] or (service[5] and episode[2] <= 1): + # mark as watched + service = self._service_mark(service, episode) - def _service_authenticate( self, service, timestamp ): - # don't proceed if timeout timer has not expired - if service[10] > int(timestamp): - return service - # create a pass hash - md5pass = hashlib.md5() - md5pass.update(service[4]) - url = service[1] + '/members/auth' - urldata = {'v':self.apiver, 'key':service[2], 'login':service[3], 'password':md5pass.hexdigest()} - try: - # authentication request - response = get_urldata(url, urldata, "POST") - # authentication response - data = json.loads(response) - log('successfully authenticated') - except: - service = self._service_fail( service, True ) - xbmc.executebuiltin((u'Notification(%s,%s,%s,%s)' % (__addonname__, __language__(32003), 750, __icon__)).encode('utf-8', 'ignore')) - log('failed to connect for authentication', xbmc.LOGNOTICE) - return service - # parse results - if 'token' in data: - # get token - service[6] = str(data['token']) - # reset failure count - service[8] = 0 - # reset timer - service[9] = 0 - service[10] = 0 - if data['errors']: - log("%s error %s : %s" % (service[0], data['errors'][0]['code'], data['errors'][0]['text']), xbmc.LOGNOTICE) - if data['errors'][0]['code'] < 2000: - # API error - xbmc.executebuiltin((u'Notification(%s,%s,%s,%s)' % (__addonname__, __language__(32002), 750, __icon__)).encode('utf-8', 'ignore')) - log('bad API usage', xbmc.LOGNOTICE) - # disable the service, the monitor class will pick up the changes - __addon__.setSetting('betaactive', 'false') - elif data['errors'][0]['code'] > 4001: - # login error - xbmc.executebuiltin((u'Notification(%s,%s,%s,%s)' % (__addonname__, __language__(32004), 750, __icon__)).encode('utf-8', 'ignore')) - log('login or password incorrect', xbmc.LOGNOTICE) - service[7] = True - else: - # everything else - service = self._service_fail( service, True ) - xbmc.executebuiltin((u'Notification(%s,%s,%s,%s)' % (__addonname__, __language__(32001), 750, __icon__)).encode('utf-8', 'ignore')) - log('server error while authenticating', xbmc.LOGNOTICE) - return service + def _service_authenticate( self, service, timestamp ): + # don't proceed if timeout timer has not expired + if service[10] > int(timestamp): + return service + # create a pass hash + md5pass = hashlib.md5() + md5pass.update(service[4]) + url = service[1] + '/members/auth' + urldata = {'v':self.apiver, 'key':service[2], 'login':service[3], 'password':md5pass.hexdigest()} + try: + # authentication request + response = get_urldata(url, urldata, "POST") + # authentication response + data = json.loads(response) + log('successfully authenticated') + except: + service = self._service_fail( service, True ) + xbmc.executebuiltin((u'Notification(%s,%s,%s,%s)' % (__addonname__, __language__(32003), 750, __icon__)).encode('utf-8', 'ignore')) + log('failed to connect for authentication', xbmc.LOGERROR) + return service + # parse results + if 'token' in data: + # get token + service[6] = str(data['token']) + # reset failure count + service[8] = 0 + # reset timer + service[9] = 0 + service[10] = 0 + + if data['errors']: + log("%s error %s : %s" % (service[0], data['errors'][0]['code'], data['errors'][0]['text']), xbmc.LOGWARNING) + if data['errors'][0]['code'] < 2000: + # API error + xbmc.executebuiltin((u'Notification(%s,%s,%s,%s)' % (__addonname__, __language__(32002), 750, __icon__)).encode('utf-8', 'ignore')) + log('bad API usage', xbmc.LOGWARNING) + # disable the service, the monitor class will pick up the changes + __addon__.setSetting('betaactive', 'false') + elif data['errors'][0]['code'] > 4001: + # login error + xbmc.executebuiltin((u'Notification(%s,%s,%s,%s)' % (__addonname__, __language__(32004), 750, __icon__)).encode('utf-8', 'ignore')) + log('login or password incorrect', xbmc.LOGWARNING) + service[7] = True + else: + # everything else + service = self._service_fail( service, True ) + xbmc.executebuiltin((u'Notification(%s,%s,%s,%s)' % (__addonname__, __language__(32001), 750, __icon__)).encode('utf-8', 'ignore')) + log('server error while authenticating', xbmc.LOGERROR) + xbmc.executebuiltin((u'Notification(%s,%s,%s,%s)' % (__addonname__, "Authentication failed", 750, __icon__)).encode('utf-8', 'ignore')) - def _service_mark( self, service, episode ): - # abort if betamark = false and playcount > 0 and play = false - if not service[12] and episode[2] > 0 and not episode[3]: - log("abort marking, as play = %s" % episode[3]) - return service - # abort if betaunmark = false and playcount = 0 and play = false - elif not service[13] and episode[2] == 0 and not episode[3]: - log("abort unmarking, as play = %s" % episode[3]) - return service - if episode[6]=='episode': - # follow show if BetaFollow = true - if service[14] and episode[2] != -1: - url = service[1] + "/shows/show" - urldata = {'v':self.apiver, 'key':service[2], 'token':service[6], 'thetvdb_id':episode[0]} - try: - # marking request - response = get_urldata(url, urldata, "POST") - # marking response - data = json.loads(response) - except: - service = self._service_fail( service, False ) - log('failed to follow show %s' % episode[4], xbmc.LOGNOTICE) - return service - # parse results - if data['errors']: - log("%s error : %s %s" % (service[0], data['errors'][0]['code'], data['errors'][0]['text']), xbmc.LOGNOTICE) - if data['errors'][0]['code'] == 2001: - # drop our session key - service[6] = '' - log('bad token while following show', xbmc.LOGNOTICE) - return service - elif data['errors'][0]['code'] == 2003: - log('already following show %s' % episode[4]) - else: - xbmc.executebuiltin((u'Notification(%s,%s,%s,%s)' % (__addonname__, __language__(32005) + episode[4].decode('utf-8'), 750, __icon__)).encode('utf-8', 'ignore')) - log('failed to follow show %s' % episode[4], xbmc.LOGNOTICE) - return service - else: - if service[15]: - xbmc.executebuiltin((u'Notification(%s,%s,%s,%s)' % (__addonname__, __language__(30013) + episode[4].decode('utf-8'), 750, __icon__)).encode('utf-8', 'ignore')) - log('now following show %s' % (episode[4])) - if episode[6]=='movie': - # mark movie as watched - url = service[1] + "/movies/movie" - urldata = {'v':self.apiver, 'key':service[2], 'token':service[6], 'id':episode[0],'state': episode[2]} - method = "POST" - if episode[2] == 0: - act = "not watched" - actlang = 30017 - else: - act = "watched" - actlang = 30016 - elif episode[6]=='episode': - # mark episode as watched - urldata = {'v':self.apiver, 'key':service[2], 'token':service[6], 'thetvdb_id':episode[1]} - if service[11]: - urldata.update({'bulk': 1}) - if episode[2] == 0: - url = service[1] + "/episodes/watched" - method = "DELETE" - act = "not watched" - actlang = 30015 - elif episode[2] == -1: - url = service[1] + "/episodes/downloaded" - method = "POST" - act = "downloaded" - actlang = 30101 - else: - url = service[1] + "/episodes/watched" - method = "POST" - act = "watched" - actlang = 30014 - try: - # marking request - response = get_urldata(url, urldata, method) - # marking response - data = json.loads(response) - except: - service = self._service_fail( service, False ) - log('failed to mark as %s' % act, xbmc.LOGNOTICE) - return service - # parse results - if data['errors']: - log("%s error : %s %s" % (service[0], data['errors'][0]['code'], data['errors'][0]['text']), xbmc.LOGNOTICE) - if data['errors'][0]['code'] == 2001: - # drop our session key - service[6] = '' - log('bad token while marking %s' % (episode[6]), xbmc.LOGNOTICE) - elif data['errors'][0]['code'] == 0: - if episode[6]=='movie': - log('%s already marked as %s' % (episode[5], act), xbmc.LOGNOTICE) - else: - log('not following show, or %s %s already marked as %s' % (episode[6],episode[5], act), xbmc.LOGNOTICE) - - else: - if episode[6]=='movie': - actlang = 32007 - else: - actlang = 32006 - xbmc.executebuiltin((u'Notification(%s,%s,%s,%s)' % (__addonname__, __language__(actlang), 750, __icon__)).encode('utf-8', 'ignore')) - log('error marking %s %s as %s' % (episode[6],episode[5], act), xbmc.LOGNOTICE) - else: - if service[15]: - xbmc.executebuiltin((u'Notification(%s,%s,%s,%s)' % (__addonname__, __language__(actlang), 750, __icon__)).encode('utf-8', 'ignore')) - log('%s %s %s marked as %s' % (episode[4], episode[6], episode[5], act)) - return service + else: + log("token find:"+service[6]) + xbmc.executebuiltin((u'Notification(%s,%s,%s,%s)' % (__addonname__, "Authentication succeeded", 750, __icon__)).encode('utf-8', 'ignore')) + return service - def _service_fail( self, service, timer ): - timestamp = int(time.time()) - # increment failure counter - service[8] += 1 - # drop our session key if we encouter three failures - if service[8] > 2: - service[6] = '' - # set a timer if failure occurred during authentication phase - if timer: - # wrap timer if we cycled through all timeout values - if service[9] == 0 or service[9] == 7680: - service[9] = 60 - else: - # increment timer - service[9] = 2 * service[9] - # set timer expire time - service[10] = timestamp + service[9] - return service + def _service_mark( self, service, episode ): + # abort if betamark = false and playcount > 0 and play = false + if not service[12] and episode[2] > 0 and not episode[3]: + log("abort marking, as play = %s" % episode[3]) + return service + # abort if betaunmark = false and playcount = 0 and play = false + elif not service[13] and episode[2] == 0 and not episode[3]: + log("abort unmarking, as play = %s" % episode[3]) + return service + if episode[6]=='episode': + # follow show if BetaFollow = true + if service[14] and episode[2] != -1: + url = service[1] + "/shows/show" + urldata = {'v':self.apiver, 'key':service[2], 'token':service[6], 'thetvdb_id':episode[0]} + try: + # marking request + response = get_urldata(url, urldata, "POST") + # marking response + data = json.loads(response) + except: + service = self._service_fail( service, False ) + log('failed to follow TV show %s' % episode[4], xbmc.LOGNOTICE) + return service + # parse results + if data['errors']: + log("%s error : %s %s" % (service[0], data['errors'][0]['code'], data['errors'][0]['text']), xbmc.LOGNOTICE) + if data['errors'][0]['code'] == 2001: + # drop our session key + service[6] = '' + log('bad token while following show', xbmc.LOGNOTICE) + return service + elif data['errors'][0]['code'] == 2003: + log('already following show %s' % episode[4]) + else: + xbmc.executebuiltin((u'Notification(%s,%s,%s,%s)' % (__addonname__, __language__(32005) + episode[4].decode('utf-8'), 750, __icon__)).encode('utf-8', 'ignore')) + log('failed to follow show %s' % episode[4], xbmc.LOGNOTICE) + return service + else: + if service[15]: + xbmc.executebuiltin((u'Notification(%s,%s,%s,%s)' % (__addonname__, __language__(30013) + episode[4].decode('utf-8'), 750, __icon__)).encode('utf-8', 'ignore')) + log('now following show %s' % (episode[4])) + if episode[6]=='movie': + # mark movie as watched + url = service[1] + "/movies/movie" + urldata = {'v':self.apiver, 'key':service[2], 'token':service[6], 'id':episode[0],'state': episode[2]} + method = "POST" + if episode[2] == 0: + act = "not watched" + actlang = 30017 + else: + act = "watched" + actlang = 30016 + elif episode[6]=='episode': + # mark episode as watched + urldata = {'v':self.apiver, 'key':service[2], 'token':service[6], 'thetvdb_id':episode[1]} + if service[11]: + urldata.update({'bulk': 1}) + if episode[2] == 0: + url = service[1] + "/episodes/watched" + method = "DELETE" + act = "not watched" + actlang = 30015 + elif episode[2] == -1: + url = service[1] + "/episodes/downloaded" + method = "POST" + act = "downloaded" + actlang = 30101 + else: + url = service[1] + "/episodes/watched" + method = "POST" + act = "watched" + actlang = 30014 + try: + # marking request + response = get_urldata(url, urldata, method) + # marking response + data = json.loads(response) + except: + service = self._service_fail( service, False ) + log('failed to mark as %s' % act, xbmc.LOGWARNING) + return service + # parse results + if data['errors']: + log("%s error : %s %s" % (service[0], data['errors'][0]['code'], data['errors'][0]['text']), xbmc.LOGNOTICE) + if data['errors'][0]['code'] == 2001: + # drop our session key + service[6] = '' + log('bad token while marking %s' % (episode[6]), xbmc.LOGNOTICE) + elif data['errors'][0]['code'] == 0: + if episode[6]=='movie': + log('%s already marked as %s' % (episode[5], act), xbmc.LOGNOTICE) + else: + log('not following show, or %s %s already marked as %s' % (episode[6],episode[5], act), xbmc.LOGNOTICE) + else: + if episode[6]=='movie': + actlang = 32007 + else: + actlang = 32006 + xbmc.executebuiltin((u'Notification(%s,%s,%s,%s)' % (__addonname__, __language__(actlang), 750, __icon__)).encode('utf-8', 'ignore')) + log('error marking %s %s as %s' % (episode[6],episode[5], act), xbmc.LOGNOTICE) + else: + if service[15]: + xbmc.executebuiltin((u'Notification(%s,%s,%s,%s)' % (__addonname__, __language__(actlang), 750, __icon__)).encode('utf-8', 'ignore')) + log('%s %s %s marked as %s' % (episode[4], episode[6], episode[5], act)) + return service + + def _service_fail( self, service, timer ): + timestamp = int(time.time()) + # increment failure counter + service[8] += 1 + # drop our session key if we encouter three failures + if service[8] > 2: + service[6] = '' + # set a timer if failure occurred during authentication phase + if timer: + # wrap timer if we cycled through all timeout values + if service[9] == 0 or service[9] == 7680: + service[9] = 60 + else: + # increment timer + service[9] = 2 * service[9] + # set timer expire time + service[10] = timestamp + service[9] + return service # monitor notifications class MyPlayer(xbmc.Monitor): - def __init__( self, *args, **kwargs ): - xbmc.Monitor.__init__( self ) - self.action = kwargs['action'] - self.service = kwargs['service'] - self.Play = False - log('Player Class Init') - self.ScanRecentlyadded() + def __init__( self, *args, **kwargs ): + xbmc.Monitor.__init__( self ) + self.action = kwargs['action'] + self.service = kwargs['service'] + self.Play = False + log('Player Class Init') + # cherche sur BS si un episode a ete marque sur un autre player + if self.service[16]: + self.ScanBSMarkedEpisode() + # cherche les episodes ajoute sur ce player et ajoute sur BS + self.ScanRecentlyadded() + + def onNotification( self, sender, method, data ): + if sender == 'xbmc': + if method == 'VideoLibrary.OnScanFinished': + # cherche sur BS si un episode a ete marque sur un autre player + if self.service[16]: + self.ScanBSMarkedEpisode() + # cherche les episodes ajoute sur ce player et ajoute sur BS + self.ScanRecentlyadded() + elif method == 'Player.OnPlay': + result = json.loads(data) + if 'item' in result: + if result['item']['type'] == 'episode': + # in case Player.OnPlay comes to fast after Player.OnStop + xbmc.sleep(1000) + log("watching episode, library id = %s" % result['item']['id']) + self.Play = True + elif result['item']['type'] == 'movie': + # in case Player.OnPlay comes to fast after Player.OnStop + xbmc.sleep(1000) + log("watching movie, library id = %s" % result['item']['id']) + self.Play = True + elif method == 'Player.OnStop': + result = json.loads(data) + # if viewing in file mode and playback stopped at the end + if 'item' in result and 'title' in result["item"] and result["end"]: + if result['item']['type'] == 'episode': + # scrap episode infos from filename (item -> title) + scraper_url = "%s/episodes/scraper?file=%s&key=%s" % (self.service[1], result["item"]["title"], self.service[2]) + scraper_data = json.loads(get_urldata(scraper_url,"","GET"))["episode"] + title = str(scraper_data["season"]) + "x" + str(scraper_data["episode"]) + # get show's tvdbid from showid + show_url = "%s/shows/display?id=%s&key=%s" % (self.service[1], scraper_data["show_id"], self.service[2]) + tvdbid = json.loads(get_urldata(show_url,"","GET"))["show"]["thetvdb_id"] + # set episode infos + episode = [int(tvdbid), int(scraper_data["thetvdb_id"]), 1, True, str(scraper_data["show_title"]), title,'episode'] + # mark episode as watched + self.action(episode, self.service) + elif result['item']['type'] == 'movie': + # scrap movie infos from filename (item -> title) + scraper_url = "%s/movies/scraper?file=%s&key=%s" % (self.service[1], result["item"]["title"], self.service[2]) + scraper_data = json.loads(get_urldata(scraper_url,"","GET"))["movie"] + # set movie infos + movie = [int(scraper_data["id"]), int(scraper_data["thetvdb_id"]), 1, True, '', str(scraper_data["title"]), 'movie'] + # mark movie as watched + self.action(movie, self.service) + else: + # wait 1s to avoid setting Play=False before marking episode + xbmc.sleep(1000) + self.Play = False + elif method == 'VideoLibrary.OnUpdate': + result = json.loads(data) + if 'playcount' in result: + if 'item' in result: + if result['item']['type'] == 'episode': + log("episode status changed for library id = %s, playcount = %s" % (result['item']['id'], result['playcount'])) + episode = self._get_episode_info( result['item']['id'], result['playcount'], self.Play, True) + if episode: + if result['playcount']==0: + # mark as downloaded + episode[2]=-1 + self.action(episode, self.service) + # mark as watched or not, depending on playcount + if not episode[8]: + self.action(episode, self.service) + self.Play = False + elif result['item']['type'] == 'movie': + log("movie status changed for library id = %s, playcount = %s" % (result['item']['id'], result['playcount'])) + movie = self._get_movie_info( result['item']['id'], result['playcount'], self.Play) + if movie: + # mark as watched or not, depending on playcount + self.action(movie, self.service) + self.Play = False + + # rechercher les episodes non marques + def ScanBSMarkedEpisode (self): + counter = 0 + # cree table de tous les episodes + result_episodes = json.loads(xbmc.executeJSONRPC('{ "jsonrpc": "2.0", "method": "VideoLibrary.GetEpisodes", "id": 1 }')) + if 'result' in result_episodes: + if 'episodes' in result_episodes['result']: + for episode in result_episodes['result']['episodes']: + ep_id = episode['episodeid'] + seen = False + try: + # test chaque episode si marqué vu + tvshow_query = '{"jsonrpc": "2.0", "method": "VideoLibrary.GetEpisodeDetails", "params": {"episodeid": ' + str(ep_id) + ', "properties": ["playcount"]}, "id": 1}' + tvshow = json.loads(xbmc.executeJSONRPC (tvshow_query))['result']['episodedetails'] + if tvshow['playcount'] > 0: + seen = True + except: + log("VideoLibrary.GetEpisodeDetails error for " + str(ep_id), xbmc.LOGERROR) + # passe au suivant si erreur + continue + if not seen: + # si pas vu, regarder sur BS si marqué + episode = self._get_episode_info( episode['episodeid'], -1, self.Play, True) + if episode and type(episode) is list: + if episode[7] != 1 and episode[8]: + if not self.service[6]: + # Verifie si connecte; [0] = episode vide + self.action([0], self.service) + query = '{"jsonrpc":"2.0", "method": "VideoLibrary.SetEpisodeDetails", "params":{"playcount": 1, "episodeid": ' + str(ep_id) + '}, "id": 1}' + result = json.loads(xbmc.executeJSONRPC (query)) + log("info 4/5:"+str(episode[4])+","+str(episode[5]), xbmc.LOGNOTICE) + if result['result'] == "OK": + # log(result, xbmc.LOGNOTICE) + log("episode marked watched on BetaSeries.com", xbmc.LOGNOTICE) + counter += 1 + else: + log("error: failed to mark watched on XBMC", xbmc.LOGERROR) + if counter > 0: + xbmc.executebuiltin((u'Notification(%s,%s,%s,%s)' % (__addonname__, ("Marked " + str(counter) + "episode(s) as watched"), 750, __icon__)).encode('utf-8', 'ignore')) + else: + log("All episodes updated", xbmc.LOGNOTICE) - def onNotification( self, sender, method, data ): - if sender == 'xbmc': - if method == 'VideoLibrary.OnScanFinished': - self.ScanRecentlyadded() - elif method == 'Player.OnPlay': - result = json.loads(data) - if 'item' in result: - if result['item']['type'] == 'episode': - # in case Player.OnPlay comes to fast after Player.OnStop - xbmc.sleep(1000) - log("watching episode, library id = %s" % result['item']['id']) - self.Play = True - elif result['item']['type'] == 'movie': - # in case Player.OnPlay comes to fast after Player.OnStop - xbmc.sleep(1000) - log("watching movie, library id = %s" % result['item']['id']) - self.Play = True - - elif method == 'Player.OnStop': - result = json.loads(data) - # if viewing in file mode and playback stopped at the end - if 'item' in result and 'title' in result["item"] and result["end"]: - if result['item']['type'] == 'episode': - # scrap episode infos from filename (item -> title) - scraper_url = "%s/episodes/scraper?file=%s&key=%s" % (self.service[1], result["item"]["title"], self.service[2]) - scraper_data = json.loads(get_urldata(scraper_url,"","GET"))["episode"] - title = str(scraper_data["season"]) + "x" + str(scraper_data["episode"]) - # get show's tvdbid from showid - show_url = "%s/shows/display?id=%s&key=%s" % (self.service[1], scraper_data["show_id"], self.service[2]) - tvdbid = json.loads(get_urldata(show_url,"","GET"))["show"]["thetvdb_id"] - # set episode infos - episode = [int(tvdbid), int(scraper_data["thetvdb_id"]), 1, True, str(scraper_data["show_title"]), title,'episode'] - # mark episode as watched - self.action(episode, self.service) - elif result['item']['type'] == 'movie': - # scrap movie infos from filename (item -> title) - scraper_url = "%s/movies/scraper?file=%s&key=%s" % (self.service[1], result["item"]["title"], self.service[2]) - scraper_data = json.loads(get_urldata(scraper_url,"","GET"))["movie"] - # set movie infos - movie = [int(scraper_data["id"]), int(scraper_data["thetvdb_id"]), 1, True, '', str(scraper_data["title"]), 'movie'] - # mark movie as watched - self.action(movie, self.service) - else: - # wait 1s to avoid setting Play=False before marking episode - xbmc.sleep(1000) - self.Play = False - elif method == 'VideoLibrary.OnUpdate': - result = json.loads(data) - if 'playcount' in result: - if 'item' in result: - if result['item']['type'] == 'episode': - log("episode status changed for library id = %s, playcount = %s" % (result['item']['id'], result['playcount'])) - episode = self._get_episode_info( result['item']['id'], result['playcount'], self.Play) - if episode: - if result['playcount']==0: - # mark as downloaded - episode[2]=-1 - self.action(episode, self.service) - # mark as watched or not, depending on playcount - self.action(episode, self.service) - self.Play = False - elif result['item']['type'] == 'movie': - log("movie status changed for library id = %s, playcount = %s" % (result['item']['id'], result['playcount'])) - movie = self._get_movie_info( result['item']['id'], result['playcount'], self.Play) - if movie: - # mark as watched or not, depending on playcount - self.action(movie, self.service) - self.Play = False - - def ScanRecentlyadded ( self): - f = __addon__.getAddonInfo('path') + '/lastdate.tmp' - try: - with open (f,"r") as fic: - lastdate = fic.read() - - except: - lastdate = '2001-01-01 00:00:00' - newdate = lastdate - # result_movies = json.loads(xbmc.executeJSONRPC('{ "jsonrpc": "2.0", "method": "VideoLibrary.GetRecentlyAddedMovies", "params": {"properties": ["dateadded"]}, "id": 1 }')) - # if 'result' in result_movies: - # log("VideoLirary GetRecentlyAddedMovies : %s" % result_movies['result']['movies']) - # for movie in result_movies['result']['movies']: - # log("id %s has been added %s" % (movie['movieid'],movie['dateadded'])) - # else: - # log("VideoLirary GetRecentlyAddedMovies in ERROR : %s" % result_movies) - result_episodes = json.loads(xbmc.executeJSONRPC('{ "jsonrpc": "2.0", "method": "VideoLibrary.GetRecentlyAddedEpisodes", "params": {"properties": ["dateadded"]}, "id": 1 }')) - if 'result' in result_episodes: - # log("VideoLirary GetRecentlyAddedEpisodes : %s" % result_episodes['result']['episodes']) - for episode in result_episodes['result']['episodes']: - if episode['dateadded'] > lastdate: - if episode['dateadded'] > newdate: - newdate = episode['dateadded'] - log("%s with id %s has been added %s" % (episode['label'],episode['episodeid'],episode['dateadded'])) - episode = self._get_episode_info( episode['episodeid'], -1, self.Play) - if episode and type(episode) is list: - episode[2]=-1 - self.action(episode, self.service) - with open (f,'wb') as fic: - fic.write(newdate) - else: - log("VideoLirary GetRecentlyAddedEpisodes in ERROR : %s" % result_episodes) - - - - def _get_episode_info( self, episodeid, playcount, playstatus ): - tvdbid = False - tvdbepid = False - try: - tvshow_query = '{"jsonrpc": "2.0", "method": "VideoLibrary.GetEpisodeDetails", "params": {"episodeid": ' + str(episodeid) + ', "properties": ["tvshowid", "showtitle", "season", "episode", "uniqueid"]}, "id": 1}' - tvshow = json.loads(xbmc.executeJSONRPC (tvshow_query))['result']['episodedetails'] - if 'uniqueid' in tvshow and 'unknown' in tvshow['uniqueid']: - tvdbepid = tvshow['uniqueid']['unknown'] - log("theTvDb episode id : %s" % tvdbepid) - tvdbid_query = '{"jsonrpc": "2.0", "method": "VideoLibrary.GetTVShowDetails", "params": {"tvshowid": ' + str(tvshow['tvshowid']) + ', "properties": ["imdbnumber"]}, "id": 1}' - tvdbid = json.loads(xbmc.executeJSONRPC (tvdbid_query))['result']['tvshowdetails']['imdbnumber'] - showtitle = tvshow['showtitle'].encode("utf-8") - epname = str(tvshow['season']) + 'x' + str(tvshow['episode']) - except: - log("could not get tvshow/episode details", xbmc.LOGNOTICE) - if not tvdbid: - url = self.service[1] + '/shows/search' - urldata = '?v=2.2&key=' + self.service[2] + '&title=' + showtitle - try: - tvdbid_query = get_urldata(url + urldata, '', "GET") - tvdbid_query = json.loads(tvdbid_query) - tvdbid = tvdbid_query['shows'][0]['thetvdb_id'] - except: - log("could not fetch tvshow's thetvdb_id", xbmc.LOGNOTICE) - return False - if not tvdbepid: - url = self.service[1] + '/shows/episodes' - urldata = '?v=2.2&key=' + self.service[2] + '&thetvdb_id=' + str(tvdbid) + '&season=' + str(tvshow['season']) + '&episode=' + str(tvshow['episode']) - try: - tvdbepid_query = get_urldata(url + urldata, '', "GET") - tvdbepid_query = json.loads(tvdbepid_query) - tvdbepid = tvdbepid_query['episodes'][0]['thetvdb_id'] - except: - log("could not fetch episode's thetvdb_id", xbmc.LOGNOTICE) - return False + def ScanRecentlyadded ( self): + f = __addon__.getAddonInfo('path') + '/lastdate.tmp' + try: + with open (f,"r") as fic: + lastdate = fic.read() + except: + lastdate = '2001-01-01 00:00:00' + newdate = lastdate + # result_movies = json.loads(xbmc.executeJSONRPC('{ "jsonrpc": "2.0", "method": "VideoLibrary.GetRecentlyAddedMovies", "params": {"properties": ["dateadded"]}, "id": 1 }')) + # if 'result' in result_movies: + # log("VideoLirary GetRecentlyAddedMovies : %s" % result_movies['result']['movies']) + # for movie in result_movies['result']['movies']: + # log("id %s has been added %s" % (movie['movieid'],movie['dateadded'])) + # else: + # log("VideoLirary GetRecentlyAddedMovies in ERROR : %s" % result_movies) + result_episodes = json.loads(xbmc.executeJSONRPC('{ "jsonrpc": "2.0", "method": "VideoLibrary.GetRecentlyAddedEpisodes", "params": {"properties": ["dateadded"]}, "id": 1 }')) + if 'result' in result_episodes: + if 'episodes' in result_episodes['result']: + # log("VideoLirary GetRecentlyAddedEpisodes : %s" % result_episodes['result']['episodes']) + for episode in result_episodes['result']['episodes']: + if episode['dateadded'] > lastdate: + if episode['dateadded'] > newdate: + newdate = episode['dateadded'] + log("%s with id %s has been added %s" % (episode['label'],episode['episodeid'],episode['dateadded'])) + episode = self._get_episode_info( episode['episodeid'], -1, self.Play, False) + if episode and type(episode) is list: + episode[2]=-1 + self.action(episode, self.service) + with open (f,'wb') as fic: + fic.write(newdate) + else: + log("VideoLibrary GetRecentlyAddedEpisodes in ERROR : %s" % result_episodes) - epinfo = [int(tvdbid), int(tvdbepid), int(playcount), bool(playstatus), showtitle, epname, 'episode'] - return epinfo + def _get_episode_info( self, episodeid, playcount, playstatus, hasSeen): + tvdbid = False + tvdbepid = False + logstr = "" + # log("id episode: %s" % episodeid) + try: + tvshow_query = '{"jsonrpc": "2.0", "method": "VideoLibrary.GetEpisodeDetails", "params": {"episodeid": ' + str(episodeid) + ', "properties": ["tvshowid", "showtitle", "season", "episode", "uniqueid", "playcount"]}, "id": 1}' + tvshow = json.loads(xbmc.executeJSONRPC (tvshow_query))['result']['episodedetails'] + # log(tvshow, xbmc.LOGNOTICE) + if 'uniqueid' in tvshow and 'unknown' in tvshow['uniqueid']: + tvdbepid = tvshow['uniqueid']['unknown'] + # log("theTvDb episode id : %s" % tvdbepid) + showtitle = tvshow['showtitle'].encode("utf-8") + epname = str(tvshow['season']) + 'x' + str(tvshow['episode']) + # if tvshowid: + logstr += ('Id: %s Title: %s tvshowid: %s tvdbepid: %s' % (episodeid, tvshow['showtitle'], tvshow['tvshowid'], tvdbepid)) + # else: + # logstr += ('Id: %s Title: %s tvdbepid: %s' % (episodeid, showtitle, tvdbepid)) + except: + log("VideoLibrary.GetEpisodeDetails error for " + str(episodeid), xbmc.LOGERROR) + return False + + try: + tvdbid_query = '{"jsonrpc": "2.0", "method": "VideoLibrary.GetTVShowDetails", "params": {"tvshowid": ' + str(tvshow['tvshowid']) + ', "properties": ["imdbnumber"]}, "id": 1}' + tvdbid = json.loads(xbmc.executeJSONRPC (tvdbid_query))['result']['tvshowdetails']['imdbnumber'] + logstr += ('\ntvdbid: %s' % ( tvdbid) ) + except: + log(logstr , xbmc.LOGNOTICE) + tvdbid = False + log("could not get tvshow/episode details for "+ str(episodeid), xbmc.LOGERROR) + # si imbd_id, convert to thetvdb_id + if (tvdbid): + if (tvdbid).startswith("tt"): + imdbid = tvdbid + url = self.service[1] + '/shows/display' + urldata = '?v=2.2&key=' + self.service[2] + '&imdb_id=' + imdbid + try: + tvdbid_query = get_urldata(url + urldata, '', "GET") + tvdbid_query = json.loads(tvdbid_query) + tvdbid = tvdbid_query['show']['thetvdb_id'] + logstr += (' convert to %s ' % (tvdbid)) + except: + log(logstr , xbmc.LOGNOTICE) + log('Cannot convert from %s' %(imdbid), xbmc.LOGERROR) + tvdbid = False + # si aucun tvdbid, chercher avec le Titre + if not tvdbid: + url = self.service[1] + '/shows/search' + urldata = '?v=2.2&key=' + self.service[2] + '&title=' + showtitle + try: + tvdbid_query = get_urldata(url + urldata, '', "GET") + tvdbid_query = json.loads(tvdbid_query) + tvdbid = tvdbid_query['shows']['thetvdb_id'] + logstr += (' BS tvdbid from title: %s' % ( tvdbid) ) + except: + log(logstr , xbmc.LOGNOTICE) + log("could not fetch tvshow's thetvdb_id for " + showtitle, xbmc.LOGERROR) + return False + if (tvdbepid): + if (tvdbepid).startswith("tt"): + tvdbepid = False + if not tvdbepid: + url = self.service[1] + '/shows/episodes' + urldata = '?v=2.2&key=' + self.service[2] + '&thetvdb_id=' + str(tvdbid) + '&season=' + str(tvshow['season']) + '&episode=' + str(tvshow['episode']) + # log("url:"+urldata) + try: + tvdbepid_query = get_urldata(url + urldata, '', "GET") + tvdbepid_query = json.loads(tvdbepid_query) + tvdbepid = tvdbepid_query['episodes'][0]['thetvdb_id'] + logstr += (' tvdbepid: %s for Ep %s' % ( tvdbepid, epname)) + except: + log(logstr , xbmc.LOGNOTICE) + log("could not fetch episode's thetvdb_id for " + showtitle + "-" + epname, xbmc.LOGERROR) + return False + seen=False + if (hasSeen): + if tvshow['playcount'] != 1: + # Auth : send episode vide + if not self.service[6]: + self.action([0], self.service) + url = self.service[1] + '/episodes/display' + urldata = '?v=2.2&key=' + self.service[2] + '&token=' + self.service[6] + '&thetvdb_id=' + str(tvdbepid) + # log("url:"+urldata, xbmc.LOGNOTICE) + try: + seen_query = get_urldata(url + urldata, "", "GET") + seen_query = json.loads(seen_query) + seen = seen_query['episode']['user']['seen'] + # log("return :"+str(seen_query) , xbmc.LOGNOTICE) + # log('seen %s %s : %s' % (showtitle, epname, seen) , xbmc.LOGNOTICE) + except: + log(logstr , xbmc.LOGNOTICE) + log('failed to get status for %s' % showtitle, xbmc.LOGERROR) + return False + log(logstr) + epinfo = [int(tvdbid), int(tvdbepid), int(playcount), bool(playstatus), showtitle, epname, 'episode', tvshow['playcount'], bool(seen)] + return epinfo - def _get_movie_info( self, episodeid, playcount, playstatus ): - method = 'VideoLibrary.GetMovieDetails' - params = '"movieid": ' + str(episodeid) + ', "properties": ["imdbnumber", "originaltitle", "sorttitle", "title", "uniqueid"]' - returncode = 'moviedetails' - movie_query = '{"jsonrpc": "2.0", "method": "' + str(method) + '", "params": {' + str(params) + '}, "id": 1}' - movie = json.loads(xbmc.executeJSONRPC (movie_query))['result']['moviedetails'] - imdbid = '' - tvdbid = '' - id = '' - try: - imdbid = movie['imdbnumber'] - moviename = movie['originaltitle'].encode("utf-8") - log('movie found= %s %s' % (moviename, imdbid)) - except: - log("could not get movie details", xbmc.LOGNOTICE) - if not imdbid: - url = self.service[1] + '/movies/search' - urldata = '?v=2.2&key=' + self.service[2] + '&title=' + moviename - try: - imdbid_query = get_urldata(url + urldata, '', "GET") - imdbid_query = json.loads(imdbid_query) - imdbid = imdbid_query['movies'][0]['imdb_id'] - except: - log("could not fetch movie's %s imdb_id : %s " % (moviename, imdbid), xbmc.LOGNOTICE) - return False - url = self.service[1] + '/movies/movie' - urldata = '?key=' + self.service[2] + '&imdb_id=' + str(imdbid) - try: - tvdbid_query = get_urldata(url + urldata, '', "GET") - log(tvdbid_query) - tvdbid_query = json.loads(tvdbid_query) - tvdbid = tvdbid_query['movie']['tmdb_id'] - id = tvdbid_query['movie']['id'] - except: - log("could not fetch movie %s thetmdb_id : %s , %s" % (imdbid, tvdbid , id ), xbmc.LOGNOTICE) - return False - epinfo = [int(id), int(tvdbid), int(playcount), bool(playstatus), '', moviename, 'movie'] - return epinfo + def _get_movie_info( self, episodeid, playcount, playstatus ): + method = 'VideoLibrary.GetMovieDetails' + params = '"movieid": ' + str(episodeid) + ', "properties": ["imdbnumber", "originaltitle", "sorttitle", "title", "uniqueid"]' + returncode = 'moviedetails' + movie_query = '{"jsonrpc": "2.0", "method": "' + str(method) + '", "params": {' + str(params) + '}, "id": 1}' + movie = json.loads(xbmc.executeJSONRPC (movie_query))['result']['moviedetails'] + imdbid = '' + tvdbid = '' + id = '' + try: + imdbid = movie['imdbnumber'] + moviename = movie['originaltitle'].encode("utf-8") + log('movie found= %s %s' % (moviename, imdbid)) + except: + log("could not get movie details", xbmc.LOGNOTICE) + if not imdbid: + url = self.service[1] + '/movies/search' + urldata = '?v=2.2&key=' + self.service[2] + '&title=' + moviename + try: + imdbid_query = get_urldata(url + urldata, '', "GET") + imdbid_query = json.loads(imdbid_query) + imdbid = imdbid_query['movies'][0]['imdb_id'] + except: + log("could not fetch movie's %s imdb_id : %s " % (moviename, imdbid), xbmc.LOGNOTICE) + return False + url = self.service[1] + '/movies/movie' + urldata = '?key=' + self.service[2] + '&imdb_id=' + str(imdbid) + try: + tvdbid_query = get_urldata(url + urldata, '', "GET") + log(tvdbid_query) + tvdbid_query = json.loads(tvdbid_query) + tvdbid = tvdbid_query['movie']['tmdb_id'] + id = tvdbid_query['movie']['id'] + except: + log("could not fetch movie %s thetmdb_id : %s , %s" % (imdbid, tvdbid , id ), xbmc.LOGNOTICE) + return False + epinfo = [int(id), int(tvdbid), int(playcount), bool(playstatus), '', moviename, 'movie'] + return epinfo # monitor settings change class MyMonitor(xbmc.Monitor): - def __init__( self, *args, **kwargs ): - xbmc.Monitor.__init__( self ) - self.action = kwargs['action'] + def __init__( self, *args, **kwargs ): + xbmc.Monitor.__init__( self ) + self.action = kwargs['action'] - def onSettingsChanged( self ): - log('onSettingsChanged') - self.action() + def onSettingsChanged( self ): + log('onSettingsChanged') + self.action() # start script if ( __name__ == "__main__" ): - log('script version %s started' % __addonversion__) - __useragent__ = set_user_agent() - Main() - + log('script version %s started' % __addonversion__) + __useragent__ = set_user_agent() + Main() diff --git a/service.betaseries.com/changelog.txt b/service.betaseries.com/changelog.txt index 840c0ba..adf0b4e 100644 --- a/service.betaseries.com/changelog.txt +++ b/service.betaseries.com/changelog.txt @@ -1,3 +1,7 @@ +1.0.13 +- convert from imbd_id in tvdb_id +- add auto-update from BS + 1.0.12 - syntax error, missing ":" diff --git a/service.betaseries.com/resources/language/English/strings.po b/service.betaseries.com/resources/language/English/strings.po index 984ea1a..deaf5dc 100644 --- a/service.betaseries.com/resources/language/English/strings.po +++ b/service.betaseries.com/resources/language/English/strings.po @@ -82,6 +82,12 @@ msgctxt "#30017" msgid "Movie marked as not watched !" msgstr "" +msgctxt "#30018" +msgid "Verbose logging" + +msgctxt "#30019" +msgid "Update episodes seen from BS at each start" + #empty strings from id 30018 to 32000 msgctxt "#30101" diff --git a/service.betaseries.com/resources/language/French/strings.po b/service.betaseries.com/resources/language/French/strings.po index c1bc9ff..b37700f 100644 --- a/service.betaseries.com/resources/language/French/strings.po +++ b/service.betaseries.com/resources/language/French/strings.po @@ -80,6 +80,14 @@ msgctxt "#30017" msgid "Movie marked as not watched !" msgstr "Film marqué comme non vu !" +msgctxt "#30018" +msgid "Verbose logging" +msgstr "Log verbeux" + +msgctxt "#30019" +msgid "Update episodes seen from BS at each start" +msgstr "Mettre à jour les épisodes marqués vus sur BS à chaque démarrage" + msgctxt "#30101" msgid "Episode marked as downloaded !" msgstr "Episode marqué récupéré !" diff --git a/service.betaseries.com/resources/settings.xml b/service.betaseries.com/resources/settings.xml index 5b89cf8..6b9049f 100644 --- a/service.betaseries.com/resources/settings.xml +++ b/service.betaseries.com/resources/settings.xml @@ -10,5 +10,7 @@ + + From d1ab7719a307873f3b91c67c5cb81fb33b94f2c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Physiologie=20des=20Cellules=20Cardiaques=20et=20Vasculair?= =?UTF-8?q?es=20-=20Universit=C3=A9=20de=20Tours?= Date: Mon, 23 Mar 2020 17:05:33 +0100 Subject: [PATCH 02/18] Add zip files --- .../repository.betaseries-1.0.1.zip | Bin 0 -> 10466 bytes .../service.betaseries.com-1.0.13.zip | Bin 0 -> 22544 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 repository.betaseries/repository.betaseries-1.0.1.zip create mode 100644 service.betaseries.com/service.betaseries.com-1.0.13.zip diff --git a/repository.betaseries/repository.betaseries-1.0.1.zip b/repository.betaseries/repository.betaseries-1.0.1.zip new file mode 100644 index 0000000000000000000000000000000000000000..0e774c44e96205aca279d15bf0d2925e01d8aec7 GIT binary patch literal 10466 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 P5g`F?fAzGf|8e?XvuDio literal 0 HcmV?d00001 diff --git a/service.betaseries.com/service.betaseries.com-1.0.13.zip b/service.betaseries.com/service.betaseries.com-1.0.13.zip new file mode 100644 index 0000000000000000000000000000000000000000..4eea98b53b28906d700ff1543f802a7b19c87742 GIT binary patch literal 22544 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 literal 0 HcmV?d00001 From 9773984c08d2fef5d83acc072ead5e57aedca265 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Physiologie=20des=20Cellules=20Cardiaques=20et=20Vasculair?= =?UTF-8?q?es=20-=20Universit=C3=A9=20de=20Tours?= Date: Mon, 23 Mar 2020 17:14:18 +0100 Subject: [PATCH 03/18] Kodi 18 compatibility & bi-directional synchronisation --- addons.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/addons.xml b/addons.xml index 484c8f0..1438d41 100644 --- a/addons.xml +++ b/addons.xml @@ -30,7 +30,7 @@ - + @@ -62,11 +62,11 @@ - + - https://raw.github.com/skylex/xbmc-betaseries/master/addons.xml - https://raw.github.com/skylex/xbmc-betaseries/master/addons.xml.md5 - https://raw.github.com/skylex/xbmc-betaseries/master/ + https://raw.github.com/PCCV/xbmc-betaseries/master/addons.xml + https://raw.github.com/PCCV/xbmc-betaseries/master/addons.xml.md5 + https://raw.github.com/PCCV/xbmc-betaseries/master/ BetaSeries Add-on Repository From c5c50303d750063246374293368305077a7265d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Physiologie=20des=20Cellules=20Cardiaques=20et=20Vasculair?= =?UTF-8?q?es=20-=20Universit=C3=A9=20de=20Tours?= Date: Mon, 23 Mar 2020 17:19:10 +0100 Subject: [PATCH 04/18] Kodi 18 compatibility & bi-directional synchronisation --- service.betaseries.com/betaseries.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/service.betaseries.com/betaseries.py b/service.betaseries.com/betaseries.py index 33de54f..25fde9d 100644 --- a/service.betaseries.com/betaseries.py +++ b/service.betaseries.com/betaseries.py @@ -409,7 +409,7 @@ def ScanBSMarkedEpisode (self): ep_id = episode['episodeid'] seen = False try: - # test chaque episode si marqué vu + # test chaque episode si marque vu tvshow_query = '{"jsonrpc": "2.0", "method": "VideoLibrary.GetEpisodeDetails", "params": {"episodeid": ' + str(ep_id) + ', "properties": ["playcount"]}, "id": 1}' tvshow = json.loads(xbmc.executeJSONRPC (tvshow_query))['result']['episodedetails'] if tvshow['playcount'] > 0: @@ -419,7 +419,7 @@ def ScanBSMarkedEpisode (self): # passe au suivant si erreur continue if not seen: - # si pas vu, regarder sur BS si marqué + # si pas vu, regarder sur BS si marque episode = self._get_episode_info( episode['episodeid'], -1, self.Play, True) if episode and type(episode) is list: if episode[7] != 1 and episode[8]: From a69f5fb6571eda35b243ffd4dac176fcd7ca141e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Physiologie=20des=20Cellules=20Cardiaques=20et=20Vasculair?= =?UTF-8?q?es=20-=20Universit=C3=A9=20de=20Tours?= Date: Mon, 23 Mar 2020 17:20:46 +0100 Subject: [PATCH 05/18] Kodi 18 compatibility & bi-directional synchronisation --- .../service.betaseries.com-1.0.13.zip | Bin 22544 -> 22521 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/service.betaseries.com/service.betaseries.com-1.0.13.zip b/service.betaseries.com/service.betaseries.com-1.0.13.zip index 4eea98b53b28906d700ff1543f802a7b19c87742..944eb7e75e00fc1fccaa9e47279925481c57a41c 100644 GIT binary patch delta 7190 zcmV+x9O>hbumSn60gyWt000O8T#9#4iULg|{~7=QTxb9QB$L558k0a$4S&r&YjfK+ zwx6wEfy+!vsgdPJ;-qy}?Kr8E`fi+fY^S{)UyX($A&Ct|YDvnDHCMvaNg$tWFLqhg}9uCnK(<6N$Sl6T#i#IMV5^78!wg5#ci?>z88yB24R+` z;b@Ud5$3{+gPkN5vm^+|w|^}f30fC%AXAY~rO0JE%S1A!o7ZpOi`O!isTYZ}#V87W z@h0?ToJrwjVva4@R0d+CM#4U?5RVImhj^91&|V%U@pB1 znu=tOP#qq~i*H5bH(?Zsk$)76OpX^(mj?lG z@#o3q@9*AUileuGi9e6d&yU_-{`DNd^JxN4<+bF&!r43uVQg4W>c#mj5QoP&JwAW= zJ9IjFaq{Nm@-JM?tCP#O#}^mk)w^?XB+ib`FHc^+e{*y$&fcG&y}LN>i3^FCNgiPZ zeaFNkpkN?#FN`va0Dpf0Ycs$x3dGdAmcU|PhSz|hC;Vi7yPkQ9#!(VaXu0BlUYx#s zE;2?CLur z<*gR57{(BbG=k?{^$YTuCH@BqOP_k#l%C|_3>Gm5(FFd?bia?Inctd8DI-4g}<%Va7f*ULm{@dM86oYcZ7f29Sso% z!y!SK9=(ao3FssqCv7(jTmu|?GYQ};pb?^gSDFV{H1|+2)G724U^P0vg4GmceDqx} zyUlVrYj?yW;lTeN6;DzbN#H6iJ@Vqo!kg4B=1t;zQGfVv8C-x#h$pQUbFi1mJdk5= z5#`81Q1ABMZl~1>9=pOL0uYgjpD8xflCV5E>xtIOP^x z1Df!+7k@|;^R~0d$J;+Soz~V&W*HC!9xvR7*`autx#FQ{TT;@+jsQvX;R0vbq_4X5 zWLz2#7EZWnB#BUCP^NqcHZ&bVmpE@DPAIO!e=THs3sd6_4DAJ3n`V(8r4L5=zc1ds zJwJQdc0UORLDISJ913T@x9fC;Gm~I#18g{&gMXRz$$s=+%Nz{+T!LQ948i6e82b#s zJ~{K^!J)WvlmsFWimx;H3|AqJxFRR~Dl-rZcW`Bd z87>Lf9dxi?7~i2E0&_pa2D&-_1W)S-HleqfCd}fZL_jctF^FYKdbrU1pq5_AD1T} z@-V(v188{x>pB9gu4Oe)xZsX$7nkl4h}%I|?LufNUDfwhm}a?H*>{W}HC<8L#Oki7 zfrL21pP@{xhMxn7fq$`xK7Xu%9|1@WW~W}duICIu>eduf-<4~M8~VOVqA0mpO-cf( z>H9XxAz5A7HztreoaX_$gw;qBOr^6O8#Z?Z{TL-#wJ%sCOY|@rG$NsIkl&>255$!c z+%9nlvAB^CbYU<;(ggv6TAh|KmTz=mntw*m21=51aAIl*tO!{B zWuWM4_j{^H`=A6#O*UU_*4cn*Jf@07F;f=9ul`TfIkQ-6s30iT7f;*Z4##3!q zy90vLw|fc)K!2jpdI3oIAGp0j$%6sa(yUv1wEcnj2V@)_HRkflRC^QA5xO9@8g)q; zORP}>X*!|Au^18-HDad{bGB7jaiImW(F$5+odjzAVx*b*PHR&!nu4QwOd^3clnObR z(**}~+t-zy9<)$+rk?cJB^ZJ}p_C4+USTMJN08RIJAX4d8$q74gUfdr2qSv{{N!G{ zhgKj3stf{xO+3K<09qiN3FD&eF}5KFH%S_}hZ>!!{1}82OdUF(QKLD~E-Mbon#ns# z@o#g=<($2{xO6%VW9iTsoFT8sO7Znm>Ps;h>k}#zh-yjoDQGED)K<`TTA z=(N6x?SI|Bv+dQ(L?l6C^F*f=RH`l0&h46#&++;ByYo(iaL&Cn!}={&5;B%?mpr?R zm24!sVl(Dr^uQt?7%EkkK)@^2aiEw9gF+u=vIRu~cHf_{@2(9>dS`?DY(Q+iQ%#I4 zPb@Jt%Um{DRF8O=32GE@fz>D~Wav?L2i;0XXn(qLk??N)qg;N>VPOSP|2#T>d-C?R z_SKD}iGK)S^sct&M`tID*Ee$LFxUQ_g^HzW1RfXBTVO%XtzRix%`o#u5tr!;+X^=` zm6367N?RWD(ElJ7b9(Gg0Zp0FC`B-v)#pKg;TS_TQd`K2S5o*F@nm;*Pg9tz*|(OR(#=`4n?eY+f0=G@7?>L#DlZ zk_iz656lY8qI{MfSli~!CIV$!8OVxEFsK+&biA(mFaiD|ju<1X%vP{jgMAjy@Pu>;;GON;ogzSve~wdzF^x_=GVb!7(!rLCbvW_l^RN|B__a(e;ft%rKY%Sg1c^(V*&fna(@tHmd#Eb z8&>62Dz1>(2(drHp-WT?a&$X#2A&~To|WTY)oDeCr`jj4@`glD9m_0H^h;?~=eG8k zKDIpTlAD@QSAagbw2g8o_C9x3(XW>E3NqU%QK;a`Z^v(rFOQu&FyNrIRUs&2u`(7g zXavbkj4pE-6C)oQk1D8*#(&=KURe(AwfLneS1kKU%PxA=1Q;8I7wUjPb&yTVTz9Wv zSz$%RHtPZ`TOU|#eFC~!&1h{I=G(^);l|O!irAqpa;S|PH18_5`)LDm>th9_#4D`6 z!UX83!w5tI4_#(eG!B4#z|n?4%W|j6CFK>DMCW3OVe97t3%Aj<#eb|T*Jx=SaO_zX z;qv3B)cDoCznbLkE}qEA0$&ISQSrWHGfV$28-n*;xE4(Q*C;9&^jYf{RRXN9L1^o? zw6l|{jYhM{)3DbV#(pYiGOiS+sqSo5rXTgiUaQGcs9iWD$s(si>v#%Tji(HvHP$a; z|FFThJiy~4!c!}NZhso7#P=6z3PcPRc#5>TF*2Wex?VzEl~=k+y?HSfpy=QFWbLPE zvY1Rkmm{;ub?rq9F2`Ef{;Wz9Nm^-o_VlOS@*=1<|8%#k**1MmHNV_tU;Jo|ZD_z) z^IjX>w5mn_g0+vz15_pEfhk4DmLg>O(3IYpC*@HGhfsEwkAG2h#gAS($>8V54>x$l zGG=$|RS#aZ^uZ;)@6SE2TyAg&8ldps8bY-cAZJ|gd8GTtnEB z`dE?&QGIbCvQRAIBA^vACzl1m3PCJrXB{X#r{T277HD1VsXb_FyzssF#l9cDOwR_!?tgF83!2E+QwWsvqW#51%NqM!`XDjUEf^*lm?K$9Try-v>+wYq9Z7MN zz(Xzg~cf}3)>r3{7e z!H9_x4q%Ky$*FSSWw|=YU?48?WUl%zolo2{;S2}yv>l?)qD0JY5eBAyTE!JoGhKEm zDWBePQN&xZ#8MRVeHKVlewF1lN(Q2|kz_nTmjmcf3>n7!3ePMFimLg@^FN3T#+zes zkkhUp=znXITv0za5A#S`tyd0$Ib4j^O)!cxxThRuJ~~bNU<|&+|;&Y)X1ANzyqw99#- zopf5rbseYcygt5kIvpSsqv#COXf&JJ!na4ha(^=E!O+ftUWECGC+e4B%xE1$O*|z) zg;bF7>tF;DNwmbK(46ss8;fkbO%Q|`%E+%_u#RFCJaMovSV1v`M>DMyIweBUt_8Bg zRBjB-I9@3UjC!Km`r?XWPnsBFX}l?8Z4V0od%P9ft>Xh?r-Y)@WfANeF)nagQNY?N zg?}V%>x5oGug?8!94imkA-_a*RDtq8S8=#>S{4Co*{Ype6#L73RGi*i6!5s}vN#ly zpmaZ#>Z^kO@kA&JzE>0G{i1Y40OTA30F*$?j5U5X^7bzKPlLmI&0j0KTX!{?EIO>E-+xbV zv|TF1hFZQrXl!wzu@1kSQ5zYlCRViQ6rswU(sJ??!*ralWt>@xn*57h3?-7PA|&{r zAsyhABBxVt0lt0?OtZ&tX}dHuGk)=_s3jx#TILE#dK0zuYAIPYp5C%+1{0kCYa5o; z0TpkOG8a)2i}n*z)VYMv(0ne?Pk=MAr(0Xxl4- zh+~<^>MIP!<74fQ`jm7O4@enZRJ2C>&JBu5_VE<9NUJHN_Ha-xoDxOqj(_28@fJ~r z=cN`RTZGqMj2{`mLF6J;Abt`D#r9sKBP{$NrJ88bwTtM85G+8L84}t%8qerp)L!YZl7e9D|Bz`o z4oU9S0dM(STu~8JqjVkWK!1z*Tv$%pRjap~b=tB59GqdPU~Q6JLP zDu~hy(~;yBnJb>`9N@u9noDmqbRI$UUTQmNJa@EJig2{zq4##){nIJ21}9~J=CR7* zq1p^FzA&bvb{FPVS7*gQ+7YSU2>zdaD#%QR`gtfSo4eMW^wxc?wtt3Wy#r#Ij<2z? z)OOgv8k3=>p^Ac{PCM&Zfr4}AeW&VHrgIcUh2Q7%6G07ytuUZeCKX&|rYK+xGTHbU zk-3*oT@vb@$jfq^rDAwAY(PwS&jdIZ*cb(Lsl>+q`UEK>NfwtnMaLYDZATDlR zZ__`qyL(9gaIRS1D1QhI+)}SopvUH{T730jM3d|YNp?z;to}jY-h?X<{cIO#u4Z7>pSWF0X97W?sei@Vk303EI%qnrw*zg zc^cJV2%)0$2f_&O=4%8@Nq_4X+xZ^hXbCMlHod0|e1jl%1AlsI#H)l{9qD$yG)A_9 z1zRA%{AwjWT#7-ekV^55A1Dk#T?aeTdzkSDw^oU-86)yWGIEQP3Z>|&ZYJZOzfwd- zX~Mlivf7HnhWUQUbh|erw`{w&&|=fK$l8kTWVuW4eApV(EOSfjp$K2Jq& z&g(wJ7?*aP+>e^i`l-UgIB$~yhk;f+6kUjx+wMs~Ck`(W0lG4fe8b3_@03}3RD*xf zs7K*8MS+fBeC%^DYjA0v-b`Daz>W;>nX+qjS@CYLsmqkq8qLOi)%x;}3s_RURvQg1 zlzN%c4S(7l&Vo_Az&GFPlyrH|uR%$RrInSG=QlcfgBZGT@^1FPLR_t)$Ges7;P07)>)dwMv) z4>%p5O3!&}Hgl$$SP|RGp={`7PG#d>8*la1_OyhkBri6wS+@Q-AMJvp92IB(RUBpu zj!k|r3?w^>$|}LNYjx|SN1YLS>BT52dT82`CAn-fof^t^OR`6T;w}6|tk%{Qroir9 zOMhR0y$7Rae~(3}L2CongRO_5+}52LPu7v2YFpW|8GmoS--YcfxSrLry~Onw7p3D7 zx%Ldpwxc8fYx!R>7Gs(FQ)MpjM25ks@C${vsS$~aPtYcSd{W6MP)mbZsEIKxVIeoT ziMW_F>K+1P*4;0>43iiibI{SRI-pW4@_&PxzP~OeAr1g~ht8wotBe)l#5LbjJWE|G z0$M!lEC+n{V>>71*D6*Ds~xS7;2h6OqKeNj6Tx_{^Oa;)lXbPwVkL3gp||w-8>Q=I z7`GVuwm{qYQPZ9Z7W8#shws`$5R4~Hm#gtBi~Ac?>6?{6bL>kzCcVG1{PgKcEq^gF zeywoVv$XKRNbXHU-EqnuxYW;*^P=4XB$COvBHWbJWEicXE=!%+=w&FmP#Xu-*Ye)+p?ls5)rIvsQdWzqO?y(?D*)wnBLMs6js~usuC1)Qg}M2U6i_0YeoS0 z*60M>kCG&67lnpSDRa?OFuds2>3@|Pgh*u_B%7=YgVY9jip9nW^`nlDlgi5I@ zCqY%>oCF~qRkXcBox#dP;9-)6lQ8z8qS}z8xw$bHrra=a&C-3Ym~q`WD6r%8Z%9@EWFCeQ)vOnT9X^lYcD2vqC2Zy*$o4&%75n7)Qg%` z`9Oh`s9s-jAU)!xjqyJefG29Ulm?p-yDFFHR1&wkJdDQ*OlG^Ry~-c(kZZymeFpN& z!(y|TQslu%4DTLyR61HhVL!290m^<Et#>-&{lj;@eY~(zOy=~XWk;y zpPc^xdW}rKBc(o{mc8U-g!ZSa$>1$PxRt^2eX9q8ayLBB9nSL>#x=#T2;Rx3a}dMf z%nRe;(4mnz5F%LfHGbeQjR6w?ldGTKhdE2%dnffP|Hm9!TlhV5`29b#jT?40ldx9= zA6$xeP>KRgBmWuz09lW|o!lP6Y80x>?5aaA*us8&M)fj*OQRWp+yS4{#RLXlA! YlZaPJ0{c&qQ5lo%R~-h2Q2+n{04hhC*Z=?k delta 7263 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 Date: Mon, 23 Mar 2020 23:16:43 +0100 Subject: [PATCH 06/18] Kodi 18 compatibility & bi-directional synchronisation --- .../repository.betaseries-1.0.0.zip | Bin 10502 -> 0 bytes service.betaseries.com/betaseries.py | 88 +++++++++++------- .../resources/language/English/strings.po | 3 + .../resources/language/French/strings.po | 4 + service.betaseries.com/resources/settings.xml | 3 +- .../service.betaseries.com-1.0.10.zip | Bin 21821 -> 0 bytes .../service.betaseries.com-1.0.11.zip | Bin 21855 -> 0 bytes .../service.betaseries.com-1.0.12.zip | Bin 21873 -> 0 bytes .../service.betaseries.com-1.0.13.zip | Bin 22521 -> 22703 bytes .../service.betaseries.com-1.0.5.zip | Bin 20242 -> 0 bytes .../service.betaseries.com-1.0.6.zip | Bin 20551 -> 0 bytes .../service.betaseries.com-1.0.7.zip | Bin 20605 -> 0 bytes .../service.betaseries.com-1.0.8.zip | Bin 19920 -> 0 bytes .../service.betaseries.com-1.0.9.zip | Bin 21803 -> 0 bytes 14 files changed, 62 insertions(+), 36 deletions(-) delete mode 100644 repository.betaseries/repository.betaseries-1.0.0.zip delete mode 100644 service.betaseries.com/service.betaseries.com-1.0.10.zip delete mode 100644 service.betaseries.com/service.betaseries.com-1.0.11.zip delete mode 100644 service.betaseries.com/service.betaseries.com-1.0.12.zip delete mode 100644 service.betaseries.com/service.betaseries.com-1.0.5.zip delete mode 100644 service.betaseries.com/service.betaseries.com-1.0.6.zip delete mode 100644 service.betaseries.com/service.betaseries.com-1.0.7.zip delete mode 100644 service.betaseries.com/service.betaseries.com-1.0.8.zip delete mode 100644 service.betaseries.com/service.betaseries.com-1.0.9.zip diff --git a/repository.betaseries/repository.betaseries-1.0.0.zip b/repository.betaseries/repository.betaseries-1.0.0.zip deleted file mode 100644 index 1fc507e860a8c9fbaa10cd07a6ecd1d3cd5716b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10502 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 Fe*k^0$khM< diff --git a/service.betaseries.com/betaseries.py b/service.betaseries.com/betaseries.py index 25fde9d..cd3edd8 100644 --- a/service.betaseries.com/betaseries.py +++ b/service.betaseries.com/betaseries.py @@ -105,10 +105,11 @@ def _get_settings( self ): BetaFollow = __addon__.getSetting('betafollow') == 'true' BetaNotify = __addon__.getSetting('betanotify') == 'true' BetaUpdate = __addon__.getSetting('betaupdate') == 'true' + BetaDlded = __addon__.getSetting('betadlded') == 'true' debugMode = __addon__.getSetting('betaverbose') == 'true' if BetaActive and BetaUser and BetaPass: # [service, api-url, api-key, user, pass, first-only, token, auth-fail, failurecount, timercounter, timerexpiretime, bulk, mark, unmark, follow] - service = ['betaseries', self.apiurl, self.apikey, BetaUser, BetaPass, BetaFirst, '', False, 0, 0, 0, BetaBulk, BetaMark, BetaUnMark, BetaFollow, BetaNotify, BetaUpdate] + service = ['betaseries', self.apiurl, self.apikey, BetaUser, BetaPass, BetaFirst, '', False, 0, 0, 0, BetaBulk, BetaMark, BetaUnMark, BetaFollow, BetaNotify, BetaUpdate, BetaDlded] self.Player = MyPlayer(action = self._service_betaserie, service = service) if service[15]: @@ -197,7 +198,8 @@ def _service_mark( self, service, episode ): return service if episode[6]=='episode': # follow show if BetaFollow = true - if service[14] and episode[2] != -1: + # if service[14] and episode[2] != -1: + if service[14] and not episode[10]: url = service[1] + "/shows/show" urldata = {'v':self.apiver, 'key':service[2], 'token':service[6], 'thetvdb_id':episode[0]} try: @@ -285,11 +287,11 @@ def _service_mark( self, service, episode ): else: actlang = 32006 xbmc.executebuiltin((u'Notification(%s,%s,%s,%s)' % (__addonname__, __language__(actlang), 750, __icon__)).encode('utf-8', 'ignore')) - log('error marking %s %s as %s' % (episode[6],episode[5], act), xbmc.LOGNOTICE) + log('error marking %s %s as %s' % (episode[4],episode[5], act), xbmc.LOGNOTICE) else: if service[15]: xbmc.executebuiltin((u'Notification(%s,%s,%s,%s)' % (__addonname__, __language__(actlang), 750, __icon__)).encode('utf-8', 'ignore')) - log('%s %s %s marked as %s' % (episode[4], episode[6], episode[5], act)) + log('%s %s %s marked as %s' % (episode[4], episode[4], episode[5], act)) return service def _service_fail( self, service, timer ): @@ -319,20 +321,22 @@ def __init__( self, *args, **kwargs ): self.service = kwargs['service'] self.Play = False log('Player Class Init') + # cherche les episodes ajoute sur ce player et ajoute sur BS + if self.service[17]: + self.ScanRecentlyadded() # cherche sur BS si un episode a ete marque sur un autre player if self.service[16]: self.ScanBSMarkedEpisode() - # cherche les episodes ajoute sur ce player et ajoute sur BS - self.ScanRecentlyadded() def onNotification( self, sender, method, data ): if sender == 'xbmc': if method == 'VideoLibrary.OnScanFinished': + # cherche les episodes ajoute sur ce player et ajoute sur BS + if self.service[17]: + self.ScanRecentlyadded() # cherche sur BS si un episode a ete marque sur un autre player if self.service[16]: self.ScanBSMarkedEpisode() - # cherche les episodes ajoute sur ce player et ajoute sur BS - self.ScanRecentlyadded() elif method == 'Player.OnPlay': result = json.loads(data) if 'item' in result: @@ -380,7 +384,7 @@ def onNotification( self, sender, method, data ): if 'item' in result: if result['item']['type'] == 'episode': log("episode status changed for library id = %s, playcount = %s" % (result['item']['id'], result['playcount'])) - episode = self._get_episode_info( result['item']['id'], result['playcount'], self.Play, True) + episode = self._get_episode_info( result['item']['id'], result['playcount'], self.Play) if episode: if result['playcount']==0: # mark as downloaded @@ -420,7 +424,7 @@ def ScanBSMarkedEpisode (self): continue if not seen: # si pas vu, regarder sur BS si marque - episode = self._get_episode_info( episode['episodeid'], -1, self.Play, True) + episode = self._get_episode_info( episode['episodeid'], -1, self.Play) if episode and type(episode) is list: if episode[7] != 1 and episode[8]: if not self.service[6]: @@ -464,16 +468,17 @@ def ScanRecentlyadded ( self): if episode['dateadded'] > newdate: newdate = episode['dateadded'] log("%s with id %s has been added %s" % (episode['label'],episode['episodeid'],episode['dateadded'])) - episode = self._get_episode_info( episode['episodeid'], -1, self.Play, False) + episode = self._get_episode_info( episode['episodeid'], -1, self.Play) if episode and type(episode) is list: - episode[2]=-1 - self.action(episode, self.service) + if not episode[9]: + episode[2]=-1 + self.action(episode, self.service) with open (f,'wb') as fic: fic.write(newdate) else: log("VideoLibrary GetRecentlyAddedEpisodes in ERROR : %s" % result_episodes) - def _get_episode_info( self, episodeid, playcount, playstatus, hasSeen): + def _get_episode_info( self, episodeid, playcount, playstatus): tvdbid = False tvdbepid = False logstr = "" @@ -513,6 +518,7 @@ def _get_episode_info( self, episodeid, playcount, playstatus, hasSeen): tvdbid_query = get_urldata(url + urldata, '', "GET") tvdbid_query = json.loads(tvdbid_query) tvdbid = tvdbid_query['show']['thetvdb_id'] + logstr += (' convert to %s ' % (tvdbid)) except: log(logstr , xbmc.LOGNOTICE) @@ -531,13 +537,28 @@ def _get_episode_info( self, episodeid, playcount, playstatus, hasSeen): log(logstr , xbmc.LOGNOTICE) log("could not fetch tvshow's thetvdb_id for " + showtitle, xbmc.LOGERROR) return False + + follow = False + # Auth : send episode vide + if not self.service[6]: + self.action([0], self.service) + url = self.service[1] + '/shows/display' + urldata = '?v=2.2&key=' + self.service[2] + '&token=' + self.service[6] + '&thetvdb_id=' + str(tvdbid) + try: + tvdbid_query = get_urldata(url + urldata, '', "GET") + tvdbid_query = json.loads(tvdbid_query) + follow = tvdbid_query['show']['in_account'] + logstr += ('follow status: %s' % ( str(tvdbid_query['show']['in_account']) )) + except: + log(logstr , xbmc.LOGNOTICE) + log("could not get follow tvshow's status for " + showtitle, xbmc.LOGERROR) + if (tvdbepid): if (tvdbepid).startswith("tt"): tvdbepid = False if not tvdbepid: url = self.service[1] + '/shows/episodes' - urldata = '?v=2.2&key=' + self.service[2] + '&thetvdb_id=' + str(tvdbid) + '&season=' + str(tvshow['season']) + '&episode=' + str(tvshow['episode']) - # log("url:"+urldata) + urldata = '?v=2.2&key=' + self.service[2] + '&thetvdb_id=' + str(tvdbid) + '&season=' + str(tvshow['season']) + '&episode=' + str(tvshow['episode']) try: tvdbepid_query = get_urldata(url + urldata, '', "GET") tvdbepid_query = json.loads(tvdbepid_query) @@ -548,26 +569,23 @@ def _get_episode_info( self, episodeid, playcount, playstatus, hasSeen): log("could not fetch episode's thetvdb_id for " + showtitle + "-" + epname, xbmc.LOGERROR) return False seen=False - if (hasSeen): - if tvshow['playcount'] != 1: - # Auth : send episode vide - if not self.service[6]: - self.action([0], self.service) - url = self.service[1] + '/episodes/display' - urldata = '?v=2.2&key=' + self.service[2] + '&token=' + self.service[6] + '&thetvdb_id=' + str(tvdbepid) - # log("url:"+urldata, xbmc.LOGNOTICE) - try: - seen_query = get_urldata(url + urldata, "", "GET") - seen_query = json.loads(seen_query) - seen = seen_query['episode']['user']['seen'] - # log("return :"+str(seen_query) , xbmc.LOGNOTICE) - # log('seen %s %s : %s' % (showtitle, epname, seen) , xbmc.LOGNOTICE) - except: - log(logstr , xbmc.LOGNOTICE) - log('failed to get status for %s' % showtitle, xbmc.LOGERROR) - return False + dl=False + if tvshow['playcount'] != 1: + url = self.service[1] + '/episodes/display' + urldata = '?v=2.2&key=' + self.service[2] + '&token=' + self.service[6] + '&thetvdb_id=' + str(tvdbepid) + try: + seen_query = get_urldata(url + urldata, "", "GET") + seen_query = json.loads(seen_query) + seen = seen_query['episode']['user']['seen'] + dl = seen_query['episode']['user']['downloaded'] + # log("return :"+str(seen_query) , xbmc.LOGNOTICE) + # log('seen %s %s : %s' % (showtitle, epname, seen) , xbmc.LOGNOTICE) + except: + log(logstr , xbmc.LOGNOTICE) + log('failed to get status for %s' % showtitle, xbmc.LOGERROR) + return False log(logstr) - epinfo = [int(tvdbid), int(tvdbepid), int(playcount), bool(playstatus), showtitle, epname, 'episode', tvshow['playcount'], bool(seen)] + epinfo = [int(tvdbid), int(tvdbepid), int(playcount), bool(playstatus), showtitle, epname, 'episode', tvshow['playcount'], bool(seen), bool(dl), bool(follow)] return epinfo def _get_movie_info( self, episodeid, playcount, playstatus ): diff --git a/service.betaseries.com/resources/language/English/strings.po b/service.betaseries.com/resources/language/English/strings.po index deaf5dc..ceb8fa5 100644 --- a/service.betaseries.com/resources/language/English/strings.po +++ b/service.betaseries.com/resources/language/English/strings.po @@ -88,6 +88,9 @@ msgid "Verbose logging" msgctxt "#30019" msgid "Update episodes seen from BS at each start" +msgctxt "#30020" +msgid "Mark recently added file as downloaded on BS at each start" + #empty strings from id 30018 to 32000 msgctxt "#30101" diff --git a/service.betaseries.com/resources/language/French/strings.po b/service.betaseries.com/resources/language/French/strings.po index b37700f..4ad9b18 100644 --- a/service.betaseries.com/resources/language/French/strings.po +++ b/service.betaseries.com/resources/language/French/strings.po @@ -88,6 +88,10 @@ msgctxt "#30019" msgid "Update episodes seen from BS at each start" msgstr "Mettre à jour les épisodes marqués vus sur BS à chaque démarrage" +msgctxt "#30020" +msgid "Mark recently added file as downloaded on BS at each start" +msgstr "Note les fichiers récents comme téléchargés sur BS à chaque démarrage" + msgctxt "#30101" msgid "Episode marked as downloaded !" msgstr "Episode marqué récupéré !" diff --git a/service.betaseries.com/resources/settings.xml b/service.betaseries.com/resources/settings.xml index 6b9049f..c90374f 100644 --- a/service.betaseries.com/resources/settings.xml +++ b/service.betaseries.com/resources/settings.xml @@ -11,6 +11,7 @@ - + + diff --git a/service.betaseries.com/service.betaseries.com-1.0.10.zip b/service.betaseries.com/service.betaseries.com-1.0.10.zip deleted file mode 100644 index 0d61dbe4613a9f6d25a84f7d2551ae8c3ea98207..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21821 zcmbTdbC9pUmoEBg+r8Vi&E2+b+ctK0@3w8*wr$(CZTJ1ooLlGIQ#HT2GxJs@mHhFp zRh8$-N}iQOUJ3*h8t`vlm3@TNzc>Eh3LSt0a58apwJ~>nzgA&Ebe{99#!c{RPb|28s1_|>c|4Ay`X708L-$VA`8)J4F$?w{wxtGJmu{T zJNO0dg=%6s5^5H```<*oExM$}*{k~1JoRlIa7h>wpIT-Jf*Zs*hCH5A#X1;b6r^l- z-!?Rvm|5MDArfjofPWj_|AkjUh5P@77vaAiUPlurI~PYI6Q}=$+`pmrpCb2frV~8_ zVxj&)Eg1v=p#86yb~15xwy-sGqI0*g{&xufg&XgMjemm>FnjV$9h<{up%bsmOxd_2 z=zlg#VZ7@+wG$&-k*o@$TNgtgpD}P`yo%{PJMCDiE2VGFMc%~Yh#^jEsqYt<)Xx!t zBMNK3I+Nim%t&^5(ol>ND0U)dDjX3!P#%e}KXZvT+;})k1T`1OOU!`v5!y73nQB_) zC!uV}FzEN`EB{#m3-mQb&^en`mxZxnAZ%rb;loQ?o>K9a$^QpQ5P6Gq?udR|TaJ&* zYeg|%2327i<0UD*ryTF3hq`I}c?bTOxNY?}OijbB#4F1un_m*cp1`*8QQz@p`Q*k% zWmO|WqV=DI5;u+Y-}9Ez&0Uk%?b)+34qRF83PU>*-XQ-PN~-_Lcw7H7Wn2u*O#Xi{ z{g3Iw_}}s&>S$tXWd8r_>VHlAf1{7jZzKnke*(fR3;@9OKXK*c?D+3&vbX!s$W*1e zp@=Pp=>4MRyer_^h9<#*QIA>%NX99r$pv)8E9(YlC9^zVPkPeDkFFffy~BU0dp^_A zqVoizt2Xd#m2}AEZ0o!pSUbZLANu!kN=9HAl95NtAPy4^t996qx5e9!A;a#$(sqc@ z&H}zN!b;f?xj_?huC@}=#wN>GRy3zT#biWx@C>y(B`1aLSJ&@g+%oj>-)eE zx^vkC#~2_|-x&T%)wlI2TVO|iKJ8A*NZXeP>IZuA=DhsX+9aRLo==#3em|$kCnO{i4Fr>HNAlca+C~VCO(F#omycT-}vrwlFkJqLWXCI0U+m zB@MFBo$k#EWLTsqpzO@n%n071GuUqUPRBSfq*s(+pR&?#w^%truBCahT}!%FciS)ZV2KYsyqB|n@ z&vn&W-3nn`bV}DP(7*>vl9Pd^net7IeKQ`$kk^oYLVvN3Y_GGk*TcYYb=-J9wkS1! z5lfOBw142MNwsO3ieaa0tEAZKpyn|ep^qRSQV+)s$TdYcN!r(I0%sV223xD~MgHyC zyEz%(u`nKr{JoXiWG5hTuOCzu;T6euB;{&PrzZBt*OyQMs@x_|Prb z5LZ^sN)0H#+&*&_#Zl{1 z?7lh8^S*Pv*YZ;99oz(*ec3RO*!B!}U*Wm(oJ_Ks+XncOoekvZ!u;>Qu_O{J4Ylu2 zj~o@q$Q_|?4kT&7VGrR;rsc=Qi~^v&^ysSE`D`XM&sp)~Qw+~?!Kl4AXi+G|Z(#eQJKBWm?lGp7GXb!cq`Y6!p$L27Y{MTG$W= z`Lz^bn^fEPRIF->I|rZ};v;BdSchti3U4Uv+W@bm0)a4}N%I%z&i>|~2qYH;cy8to z1uQXdHJseWk6|NyR8;wijohCF2u6WJXpdgXvo)EMUV9D3)ePH^iV2?y>9GuR@zm(R zXUc`6CdLy6T5Y~@cz+R(nHpq3PX8?@-+tu#*MXY-zZKa;Y|X4KoXiO*RFo+H z8=-UrR(LbzpOrWl7yuCXpF8}o1=Of`1-o?y#F3p3O4~g!7Ea0yDU(3u+_T`uMCkrS z)g-C}oIWi>v1g#OmYghpg`MLR?PDz3zUktR{(5C6MA@f1cbsju3@Vr=O3i17 zxcW2!fokLql*8Zd(d1IeG^<;nK6LI(KkxPKp>hmb`vU7f27jTXXjlc;6l2-QlTHFF z0F>e9fv&DhIeUl|`H8L&Ur&~RFIBC@G5lmL>wal9g)L5lg5USJjB{9sS!O7C zo?12e0)K><%-B zYX}C_?OO#c6omSZNKR1x0pPY2>Wf1a`Pw5KNIU;Xt`rO_cSKq^$uAUyVWMLhCM|8= z`r#!&l^LmktYAgN|Dj+}S{ODemIfvq3Bq$|>{;mpwU(C53EH^(<-p35>B9(xaV8r#PW40|4$A56K*KP}Zce>p{|P zf-4*8upO>^ZZbiFLI0r55Sdc<=c3-7qAMYuvl9+NCHqsgqq9p=ILbAebz%E%r21rY)DPC#w zJ*sn~+0#MzOn@=F9>-p53le>3l<666ztxi`(y&|kDGjqQMdz<6?CVvpNPLIJnT4nr z7doLmIt#w1j3Ht%%_JWKMjkSX+}nx{&^Zi&tH;-1EJ(LwZLJt;&$Hr~X2T&|sp*BA z1VuYkmq1pKRuJs7VJXU}o7XR~t!}K-7ttK~a2WUyRg_I9sTsU6+CMN-`I*G zUtmF|V)spBpek-Ffm8!ps`Xm0{PXuS*uXZut=QpgQ%uFlqU%Yi@<9_*PS@gF=Ae%q6?5VQL8o(;AG9@dKg?dBC z1y^9b)0fa|CstM|Z6~~)vAm_r2(ee5!kSP1(E~gAGxzazvxDl>vWbd&-mfF(vrz-Z zsv7jUGEOj^m7KTUo=o||V_D@4S9=~80(y1;`BopZC74UaOlsAuqPA)OPBB8)FD@aG z1Lfw7Bf8o}o!8KHe!Un-7N9!ki8-4qENQi0-k0+w;)jjGj>Y=5wx(v2d?Ri zcLzdtLUzsX8|eS&YX5(9b$oXI3iLng0m469Y=VD1D-Dc|?QH+IAQS$NHMMtwjO_*k zV$jMRB{*n%B*q^V)Odd~es&Q*UPS*96k`{lpjwzi{MZe1eS>fNToNuMq{Hz>ot9Tfvd1P-#7A|mDwloatm zvgjpEexDFWMo~BGWfY$Vum1jH+(wmL!41q;02!sGLlc=GVT5!l7lp7V%!_2=F&5LF z(i&s#gybx{#_^IPW|q6O4#TH>X%4l;U^}f;=c;95w(%fKY-Au#D}ri0h%ko11V($W zm22{}rJu3PRgo<+3Eve?+iAmb({`KKUVTb?> z8)W?WCc8)ThO`Wk>aniH%|CCucZ9%gT&}iT5*W+`#f8o@U5Qxg8yXPqK3 z$ep#8CA{lqx?7)I|Hg|7AtH=G4?m1c#MLAJ`Pk3_fQtJk;&8S7u^x`^9Wt!jQTM$h z`^c_~@KCN@;O?6K0t={V$aGRIY`9;Zd7HVU)2Z*3Q=c9vrFbxJr{Ro{JSN|BO>Ypv z5^d;+k{JZ8njkskq&~?^;?_f@$(oB{zu~QA=iY0>Z&)~Di3WaVgLYT6KSrk+NH&}n zVoOS`ov|uB(4OzpE%9BaFJO5~yMw$wxePu5`!xN72O1D4XX0daz2pAI{r3EPe%(jNoVqxO za1%Q@xqSLyb{&;Pn4yc-^LGE^J}k?Znbpn5hgIhko#^0~7t+IwjBL+vScE?m)aT2` z-v~B~5n_G4V~^<2TY#NAYbKDsRfU#)=#WXa!lLsWqbH~PH3=<%l_A1tRRVhkQaIUC-`-+mM&KrKZ81g&y63^@9LTU~0k(Gf@fyburDvBDx@c zdH$+Q55Uep1f9LpnFKV4MuUN#RWW zI;dwqSAdOY;EZ75H(S;b5|}5epdY_2rb_UK!e?CfAiS?&znbFBkinRb0pj~ZU}wx@ zQebj0bXBf8<(swUeMQtO1KbDaDHB~=F>zwU%BrPqJwK73eMcf z!IOuA&u@263O1SmkN8K-Zl~w%>U0IcE*JuvLzV^P1%*`Pj2y^p5eQXjdk{v`7vq%+ znv?3dS0lNh3O|cbfW}<`FbAk}&OwE^l-R2$x7HtB8t4X29Tuxc8+uZI#(^4iL~QNbQFKW3JyTIi4@y*Tvh1n^{Q>_;t>t zKrA;*Cdlz+lq*gQCk%Wv(_rubEVnU#F`wsv)a?`|M8YAMzX|W_8F25nGn4m$ug-5p z3q(lP=`^okJ0!zRlbo%*RQI$Ui(tCXzy4Y{1z!k{pmbZA=mer}jvACiUZnbNOp9Fw zhj?8`tCvwEf@UXw2_1iv{Lv?iVl<{7v3|ikV0^WK;0afHQtX5O%}dEYSU?^WpeSmc zof<<9i9&oQ2Q(weV}#m<5?cd7KFObzmSX~4#oP#2NIA;MF&4;4e%3<>`M&W{fXfCs zF9KcrablCJ1tz%ug04C4UW|k#dbxwJ3NbI=@w;~GJ=To3FH;8HiXZhqli-$ zl0h@dDeMWU>tuhtTTrIqBX)o|?f&>NG<5cMlkdS`{U}4=-7AkSiU=zeThAorkMaVm zyVhwK{CM}LJe zU-io`CGoW|kxT?CJTNjmzD;YC2X!3DS9hunL1Lqq2UgxhJEpC>dB8^5-p%~#7AUiC zneaErsk2D8pZ35~Qa%Y-SUy)SMa*w<;bGGW68_6ynyB@i?7@LHjBsBdP@B!$G7OD0 zLx-YHpu7sOApFHHnEQhL76iViidai|foY4*2NW}X$*+F6Flu;OEz$D9SepdXzCd5l z5JDiKu#$byn!T47;1{Z`uSC>0o2oxqQBefLkEeq%$aCm2;D%<%ei-1p4F{OaL{Q&& zI%Ce@yb~s-@-AE>kv6{Y{+lg)L6d^#SO{<|?nuH&PT2yT8-1Z_aC#$lA@Tr&wdQW1V2ijfqJQ8*QS61y zkCFEeW!Yf8NbUO=7v)lApd5NI*jg>Nu~V%}x6B;`pjQ$0*p&3E!!lDTAUiUZuX_3; z5&YV*x25H$!Q%ZQr0<{xaqAhSaptwJml-;v@AIvTI9OqsLC=JJhiBfAa)lVk0=r}t zG(P^A0On7hE||Vs^H)&$e_Qa}J*a%41Lk>F0vR5sSqkevGxqZZK_*5cgLUS%4(}g)+$4&c(tJ7A>D1Jbe#@XTB*Icg3$H-x ztJ$k%L|~Cl5Q6L8dN9OdsGe^qoJbh`E&LRsSa|`|LQaK`<(B~;cpciGI2D+^@H%0U zO+;Q!mZ+k8w%+fQBnjxGiUy(LlKKEf_a@PSR)Hgiu5$R7GKb1?V`6j0cqNa&jgx{x zH}pA}QdX15Bk7Y+G{jq1V0zL9I&D#%jxzGv>_D$M*HM4;3nO-W_$BHja@R8WVMweL z@;9;#u@#*%j`RNHif25?88}D5H0+sO4NMkA>oH@e*Zf58+i#T0J>nesI zNU)`grI-4n!!KN1JMyg~NW0x`=%e*;;Z~R0 ziaS+mR1>mh-TJ@fJ=oaK(+F9JI)p~K9pO~`f~O zFTYL%8b2;!4V2a0SB(P-L};PmWcf~6ALN|+ikAM28sH3YRQUq)p#f`5pr&=O8PdF8og+<2PtMI!t|n_c3( z%e(~{+%Cm)rAEN9U}_2GfRdP~x6zWLp7Bxj29#Qnp|KFtDP-KdE|9oO6h%$-ulPYL zk$aNY+r|t8;adCy(_x)}+2r>%s3vmU^LMJTK3+WVIp?y1Urdbd>c{d%lSb)BSio1N zN9F!^D@N?XJOrcY7>-_*fDb zNQ+Jp^Yng>#MdhYmQ5{m{kqKF=Eh<+OTI(suEUWMOu1PE0N8PyUHNVLWp!ooN-IMz z-I@F4@d9yIs=Vvu?G!-WvnSpz_r^d1@zsgZ$<*o5euHz`pr5cZ6E(QXC4=OZA+G7| zc?!XUJC$#|c(6xSW%yT2AMvvBJWqKk6+@$I&%?S#yd_uX3x`A^D5u_SVI86Ar7h-$ z0bk@=_1wy_z)>8e@pgToS;4IVdRPaVG;AmRS~e?L^X4^KHjZ(3CM|)2aEUff z>tM*Q^o;(s&6<@UC;?`x)~PS)f?y3$H=v+pk8HY{liiyA^T*yOe0uB;&f!d-c#{Aog*Vl9rB)fZ8rfGoq|eE{f}d6@2{wq?|NUvOnvOU6>R zx}myRp6qS8lY#NvJ;r(Mg>=nG_shctFmLydd&G{k3_D|Fx|v^8+wN~MTtO6dI-R*) z*>nBhq)PVnMNsZk7Jfo5^k}5*&a}T4;}Vw)A5kA9l|i0)ZMok5}V-Qg~Nn z9ku0mM1L4xoF4VqaGZv0)(bHZtile3F?44pe&>tI_t1?LV7!IV4(Ve#To|(l!3jg4 zRv1-cyiFo=K9#1={6w>Ms?Z0fsrL)1z?Z|3tq9$cKMnEjT8~!ybA@zFjV)WRefdn zUdCXN2?p;9^LZe*U>B=Md-fBhk!^FHX9TIl&nwC(`p&ZAGAq$ z^Rnp7haV}{0Cf#jDUp!ZNce{PZ%GuYz2nMi6o*xMh$pWScesVL2bNXkTR%s1ho&y3 z+P_)KneQz9_8n{FVn_(D-hDNE7)GCPMx3^BbT|eG?X?lFq<`O`h}>@`a4r`q+2eyd zkv(FZl6&1&!YS?DWczZsh-@(EkFxKfN{1W!%P7n^$hF$k>RC4jEBKwiOQBZpdl}J% z(m>w~c}Q5X&yf1D1~1q$K)07WJm2b)$g{d!1**s!xk|ioAVFNfe=6iuaIyd{!<9&~ zW%@Zl%HoCOO8wO^weYttl*6t17ta=Q!=;N!+S%Hd!>J(K=cz+^!bYB;99Q;#62uU> zXeylN^;O9WedFHM)o98*FD}SnxgP@WJPjqZ1?+kYE2%1UJ;>H>ZjFRK4tO;bgg&mC}x3WqYm6OKfU#0xC*)oiVcpkufvQcRe6_;-~-`Ek}%fL3pT!rXVs^Gl`4 zxJunfWOhETd~-n4QPTc`ZwreruNV&qlNG)fx=1)k}!sZ5u= z#*0abwQ>*`!U`H1Ud&vBQ#&XZE0@3ZG+d$&84y(QI?hWqHZv^3tI1kW1(m>*wUmP7 z{T?OVcwo`=Y%V*}!~1kqO?T1)T^|#o3%KaaXAB4QuZm@vV>2!n-k^;xfm3~ln=90ikz`JmYG zSik02;@wUpne>)N&4UNla8U}tJNs$9%FrC$g_KhDv#W3g)=ZE9_ZOs#eOziDx6A`I z_>G0`&F-roR^Vb6N6;z73CJqJi!WW7+%x(;Ma}t?`O(^rBWhuP)(ft<;uW?ZW$JBy zvMpURRX!>a;@Pr$+PpfTc98i#H#O@|jyWrV(MBL88u%`Gt^XS@1ku#6;_-ZJcoCHVa$XS^Q5J~V$L zqAx2>Mfhg9xV5|*!eG;wIUN6TTp0%W9TkLiW0QXRupVK2kl!?i+>1$TaxH6E737mM zu#~+~u-(e=I(hR1bJ{OgIYpLEH!t+j75EFoR2QD^^+d11R$Up7CO5Q3-dT3`SPU$S z?X&X`F;#R^Z8a0h`%(7`ziV~n^|Qh1L9%Rh`^)pYAfUfRfnbN(IuC#_Vm^BIzY2nOm27Er|4jlsb_!v~X(@ zZ2DLc*2Wc=5z~OI2Y>ANW5qPufP6dv4+(Zp_%UftE={)uhv(x81)(c>i0)6ScC#>o zAjE!_EP4mD;5A*C>6bm#DNT8$>Pbxl_Lq7j4e3t zX|W#F-;P`vw_j9tUHsf>8eo+5`#m0w58?g54HDX}hwp|>K5ejlC&=xMUf~1TUuf=c zE#isp4ScIamG|jynYz2OcnZpBC%7*rXnTT-8 zuhE=yJOdT!d;pw>_*>YRD$erG`zg#YKA{FHvwUy!$Sc6SYhrE|@+70Cb%)#2;v&4k zhZ+$4b{U%wyRN(pfckXAMk9UXY^wM(opDVw7aw_{pmR;@B236W#W&O#4~>iUrRPM` zTx>kyML~hHy0Kf1t0pO@d__KC7-D|0ibf(1UevjU$fTKO3mJrRsrHg^=LTAU%-P6+ zDrDteUW80jiK3(nDN!PiU`~-{>y7qe&i@DRJFM?oLj!Rn-$w*{Uhn=|<8Z*EDAnhK zrnQ;+xgzzIt-dTi8Y2SWp(}B;pKa{qJ-FtIwv9I73r8an)u&>LEf4FInLZBD@eAUu5?_EfTt@C1L z0S6^|2v+UsT_$t~4ez0zLa+Ve1(8FzBSJZLs^fl6 zT=&LmX;2rxYY@#boXy&%b2V%oYB?%ueg}(`!DvYBrd;Wmd--LNeGfT!-B-6Go#eOi z{yGqBwU=X8&)QHHwQKh@->Pii0EXC^)Du^n+Ub<`%Dib9jXCD&z421KQd&UI8?=FQ zC^^ssu^_1g8)Z0h9XM-!b}Imu`{jeMt@%DJ!xJR(+Gc8$;j($_7+;P=GUFwBvDes5 zU?$MFe&z7#qwSvRZQlRh7smNZhia;@;6(%Q z&Y88C#21hED?ct4Pg!o(Eb^I6R{W;#0_Jv>8Po2}>Gs)xR0#sA^MI<1Z@G+&7#=#o zjh`dxD*vyfoY<&VI`H;293S75OquA=%3Ec)k+jS0@YX5jl`DJ$b~1YNmKdqG>KCng zW@K>nK~sf;&12kB7S-}sUuxIO?#@8d&fP;$13 zi(z0Ec4W_NkZsHEXp7q#&OR-Dh&R=dd{i!|`ecpp{JS1sL32L#OZFtiJ8YD`&HB1gbo|}u_a$mlCXUu|B6OwgU9{EC%7Rg=))|b@ zf}i(W50|l`4Pc3%3%7NZ{k?HQ7;_e%4@(n6Q6Ymg)U0xC^mk>5d75YSeBYsMuijhU z>O-E_K0>9gO8q6J+lARoJz9)mPpU$7Lsv8O(VAWLk12wqbAsC!Jp$HyRKi`5lwIeRvsf|Cw}B)^@UYJ80yJMyX~sWYQYF%wLp z%ME{CIC;ENy-lw|uo~``61x{+xT2qo)*e&KvGpd%mS9}v zelp~nm;!k+WO>LJ-m^{cU z-DGBOE<>II@DZU%@4?wwN57|99k4wGn0u#};%f04)6HfPEHnG0LcNb!jg|s+2o8Q> zb4i2<*%#)A9{|SdYxcew z_KU0I&M)K>xGtHs@skn`75nI{XXDG>yzuQCV_A}w-fLy(+&vw-@k{5={)s;^2~ zzmbvNLJ%`?;c}6{AiAB3iWZfL2mBG~0qrF5pPcEfb4X%ot!@C9} zTBJ!tiwvTMR=X2BWipiCyE;mkcHOKE`La@Mvtlr?+?LnFn3?1^99rA35QeG4irCo@ zad=hVY9dvdGW{(d;#z<#ankKSJuSA9y6{0&`>DeLP5knT*DQKeosk_4%)bcdOa-R0 za`o2yvb0X5_Y+-IQnG|=3)Y*Op}t(3IZ@diAi zJJO(DYxzpWqdvVbk}PuqcgfPr%<91jgkjW6GDwR>&B1sMt`QJ^y6=hfs(u2pu%v56=iV8CCQFp(n=mvN7S7!~`VC)}UvYP4`$oRCR2 z?MCN#-?faGczLN3Z6p^5$Zn2hGu_6Mnj%#TTWcq!r*l0`d2zm~^jE4UflulQy%$qp zwn$HFAiAlq)nwoBFI@U8N~A1oc%m2uE9$!RjMdqSocp{-FG@QcbZv1eu@TBL%XxiJ z`jF*Kow!f?*7&OSx~-%|Zant8Cqm754c3&DIKPG0#`Cp?E#!d9$xd?mUuaKmQXERe zT4<2?Dy|sN4im$Ju)Ac7oo7_~3>WL~LeG1RnyIcqwPuty5UH*o`{j;1!u5|%^Rrmj zf@<#xYhW^(x{_9d@!2!IE{X=Tnd=nPDu4sA;;g2IselX&ZT-e&dYmOpjfRUSpuMj8 zTDQwyojZWJmP(;Nb)#Ky=Ggp2CkJfdsThV^?kqC*SEB!X&Y$({{qTk4v;bz0eocrq zl=&LEx4Lt!{0`Fn!T-N?Uuo!sPbnGz;LHU85dCZ2CoLf)BC90wzu(IJi-%TKS~_kU zqVe9@ydT8xr=;_o3@DsjTnVpX@dO!M$YrsKxIF&C3Bs_zI4lHdKR$LUE+B9|9L!G3 zW=zfEx$WH-sxA^=NAy^Kd82clM%;1aLJ;21-i{5NEAI5Tvxg+{dUIxq>oqh^U*f)Z ziW%PDQ}n8n=39tPm{9hLh?Q5D=w6pJTdffDghC4&^n z{k&b!d)hX4Y@U{IYov?Mq*t=NpXB@vf0VJX^89fqeUiJWsj1n~`T1PfY4pj4ON!Q$ zX`=5_Gkuy?-l(jWDZfyp@5_}9S1w7bs<58(#mUz3O{4Wr!>n*_n|}hgJ6@YdT|RBp zX46tyj2nLNY?BCgQLS`QMS07wbcsJX%8-D7hBk!bQ6XESa|B5`eH(U{RIM48wCihY z)9z zSVMJno#bp+@*<^vZlX}%;6*dlV2LZ5mPS1pnsn6nq^ZBsZ;yu2J57L z(Dq7L3rh)I;~?(Dx=}?iv!X}gaTc(Ub}nHGq=Uox=L#>Ccoiz>&2X^95^zhpn@3pz z@eS^>wAXoM7hu1;L3lmW2%4Gm$s@vi8Y~rZS}aQ@qUg-`7L)Xln~nK{@A}kgUUk&w>6cD+bpO9 z$B8MuHy2UWJNgUjmzOo~_wV5s@u<_?%X`V^_g}vrLpa=Qk(G;EWWbB!qiO!8Ww7>V zQfD8%UrOqtYGSbbJ!Bd*g`F{~4rvPt9z`P~jBt1t?smyXRDni=B!QoqJH_4R%rp$b z)(gUR)Ydv+-AEUlw@}#s3NN3{jxj#-90CuwHV{Gp?wB^#Kc3=(;EJs|b2fxZFcygy;}8c*r$7Wbm@+Hjb-3Ll6nG<1unui%iBz#vr0rv-u^X$ z>#d`d6||#Zdjxy0X-b)sqv%>GY>3Km1FwvUlo>|RRh3C1tXjBcmCQDnNQa&&ei(~3 zL$D8Hvzs9m%~max5e@q-ipj)Ue$Y!Q^9tGqGdVdufVD$L>4(`hDYMTJ2%X7~>=S_| zRJ5Ny-Q;6$A5hQDOV-sgLkc?yju&t>`fYRQ=uJhKXDpL1;Rg(rPv_04r?zh+B>++p zKfBHUmGZ9C8fkZO_vla@a=_)yg}D=TTrlQdd_%7E`TEF&^*8cy%bYDI+BW-)+UM56 zk-Z&%3;qnm@Vf+vxI{^Qtc{o&8yPa%gSw)Ijv0|DaII2OoK^Xc8))I0-WX+jV*{lV z6&>3emw5*maL{r`XIy!46<@wkOoH4%gkR~`zQk(>z>`g0yAY$H@zO~H(wN|y^QMoS zUOiESXl|1HkENxR{7K`O`r$5izJPO|wAmyK$w=LOrBa5| z37$z8HMJ`UI7*x&Y$Fe-1pgb4Gv|QJ^`o^=!o%a z;yKZj2_E?%lUzM*BXF_z(NAsQdD59~D}{F;3y?a%CF_CxmrPRLDazPL)3D@G2Zj;T`o z+O6<_iv#s#w#-mmMbUl<;q2k!wp<`x-vvsM@o`{>>KL%YpMLs1EWoCg(V&Ddw3Yww z?}~i|MaLyppozk|d4a}MhomD#-jrEdYBVNAcdis8tmJ#Dk;WTFjh%R>K>rzjN*Ar^ zyTdZS+d7W@0Ph6U*?71|u%p&d$0}OK-*Fy74##$wzA7$S%WuroMbU@9#r>vhr2}@1 zR&}aNq0R}Z4nqgC;$zV|`IN%;%_qwniv;1F;h|pV>G$btxSj1(ZeYBDdJMIplrzSy zgF8U5A{}$0Ac0fL{9Ewol?2Xx~#tiEEen zv{51PuVB=+di_hRaPELA(PLiLO`RBn27Db%77yEM^n_)d8nn(=COdHtg^TA2J11T@ z=Iz_xlc23@j8~Qqsrj59*#LIZ{+75YkIN{+Z%m{Vo>Va;VNXo4DaROupABPFn0=5# zAcg_d1a5rnduA<6%DZWq6=YRC_h~xr_RQr>{lKrh0@$Th4gu(@h)oHf;l6ndd6*75 z`D+9Iuj1AkzF0AiP*^IFh+LZj2wDNB#C!!Hl>>jYPG6JWYtxAcBL(Vc2=UH(SSx~!0LZrc|!C;2$g4ptk zRE}3BP>C?=e;km0iJE8z8##4ifUSTIQqJsLuo?X3abP6UN1gn^C|%bKDj?=2+tLwX z$KnT?tb_%=-GqRnwrO=ZjoyD2O|vVGe_lbDHf9qhj{GdF4*)N(1e`dgo4&e^X9ohu zdML|V#f@!ECo}2P>n0>~Ypgtk;uIz+1uhaU?}Luv`#^+g&&`DS&^`nQzf(JRHPcbE zsM3|V-9tTJ)z9YNztQi?&XawxxKNT;Y|iY2oQDwMILgr$qADT$-PTixqC)>WD?K#R zYtUt)zNseY>-a^{8Rn zx~#&abS&5^Vhj-IDln9lhW0&Aj~yNAj9J$&y~QP=Xey?M$6m#>gR(qgD`R^7djKJ{ z6&o8Kom+<>Z?H&IZ!{LqmW|;k_Rc!SObC&6G&;>Xvm;#HB|+6)dbSP?E}n__90zg; zFYwDbixlKkknRx!qYayGhfw~BIca2F)*-J)R69uIMS4&EKp={jMRo=r_OlT1W5vc% z^Ed90ueR?#)6E2|jGswlwtureP{G|Z`Ea)=*6Ub5vZFcat~Y!n z1dLE&Jkfk3dKlLyl3yfd+wKjfZaD{neqsZ7vGD1)`#GL4sudgwEd4rJRS z-KeULVq942ZU2hDVYH1F=NVypq*KDWj~Tf4ebgxrI~?HxQ=FBMo~)WzJI>jSQS@v7 z2}fa`F6Bi#nzO5iQ5&;FC2dL?ekdU*vZGhSc(}A_)uLJ32`PfwnyhVNnLf2%PiWiZ z)ELI|Y#{ec0wRYqvcR|;!zVT6|5M6&Mm4dmVHiX@AxKB18Kfvh5eN{FB1n;Hz=Bi@ zB4X%B2}M9SAT@O9(h&tI5N{(h8g3HfAr3`ukf3T>K4D}#oI3Thc(6n~7s>gH}n}Vu> zEp2;SYA7>|c4GOFVclBBTny67=Yi!MA>wD@U1!?MzcLrh-O;Gb3ALqGn%p%L(3}#blxA@C$nhAju@R`vcZmQPbyz=o&}5CIxcI&Z*42c=0VX3 z{HV%CD7SWK5q67BbGwaPzj`*=7F!RCGIqGiy=pF%k)BzbWck^CmNm)d#u7Di$rCi^ zjq$#bq$?t_s*!ogM~WGP&Lm=ags@`AIy#BdQ#S8g`)=Wc9|Co?xzU67KS>3p&4+q)&qbzwQK~oRQsj42tcWd8)XsY3S2sww8rseaw+O z3muGpv|b%-&k`N=wLkYww%y4!OShX5x^TxXs?`v>`T75PQV;PA=xl7=0z79Eqrm8Y|KI7^OGa`uf-xR)a8+cC`kRvzaRRY^>~ zacfsjUQh9fPJ_fi?vnFqvNUZ3UTIGu5PT*jw=TmH%M%7foYp^4eQxZ1u1;>+Y#zVX z9Hv;~ID<1&7aXH$4nIQOf5+P{F0T-toNcJ!uQ4Ct<$+QPQE?dJf2B3y8<6S*yK%Im z_Vj5s*iMis@a|UD1x)N~mr+xx0V$dK?&dp@#^z}O1)MMEifd>JANW3yC%dt{A@BMj zh5!OFuHwSn_;G_}J4=?A$6pM7lm`NM%%1+T{kXA!BqMDC{OaRrw&OmupP9vxtzD_?`|-^CsE@6Dg6whHDLiP)PsM#k z?fr-`R*m5-J0=8BNatd)AD&js(+ zDXDwv)6NruJupDY{UQ&3)=uuS6~mawStx%bV{OzL9TpGaYKf{Z^|}ptin#J(Am(^k zb~U|!*=^2;S_8qgT`XP=4L`biV z$DK#=T9@1}^l%IM+EglxA`!~heV>^1#yV?0z%$@2Pu%)&QQE|(mCq+ZO_>F$rQaAu z0hOA9L9S5C5b7yPeWpsGLe!BACmQW_x4M}Rl0me&b#F9Dgxl=P5c$@#8LMsDs1Ztn z!@Ql&QpSM0eDk#gK##!m)?2Yahg$~vA038-HZ`a4Pdp!%u;6A884ziQ(n~7WBX5We zU@%C)Xh=$CUK?jKwfRC>deg&WHA>hZcH!!@mn|kq2$jKL#ujVK%j;(Icv+tiM;Z#! z8>NTxq5hd+jg@3tnkQdHwC3G8@kz3|fn@XKiTIc5!UC&4swkN^AA#&cYnW$R;jih~ z-)xJIYR8v6pUxDj_0&)J9AazR@TIhS`&4bLMNA1kA;zhW#Q&yH(jpj@7-_=`pyzVX zGS~<~KwQhK3dYNv6)cOHkqdy$HL7t2WYiV5MP=*Jn=(1B*QLin{Q%91NgvQM4WHkA zwGb`U6~m`s1hoZ*LK$khs>}Sr#UdZ3(7oO$_u;yIx!2;HK8QC@{93MK49*t;7O^%= zsaNfGwl^-uhg}5A0V#4l73bqn+ko`D`32iOidaG0QJ8l4pi;73AgHg37NB2Gh^C(2;8@vvlz@R#ox^GY_ZD;|yzK@nT=8#f>-Av(@&rR;U_Woh18~Yv z;XS=0x2jj@$Ra7@bRnizci<-cGHT!^)3vWdI_9L8bwIOkTx*XVT2v!|;qJ9yQ1tr; zeYm;RM1|skh!b^4@sBmdv2X;o%FOww?rPkalkD*hvtGhyGEb%v`qaCxQoMuL&`!(t zvhePVgpuHC^g3F)C(6U~+dXMKyV~lYM7DskQ7Pyc!&@j5L5AST6+X2klyW|7(owI< zt?ONm00Z~19BRvAgS?+;Z3#`C+-l8nE#Oxnv{G%iOv0V!>&3 z32p5CRBo^VI^2UllC$z;>z;IS_;|u0?o_php6Q|i=ZZYjYeObe`8!r(-56ogUR^uv zq1Y3g;qiLg-_Q~%N?zps8ESUNF|A!2xUtPJwnwIFy}bR+2C?E(cycM5XoEfvk= z8==#-a@@lqToSFiuFOL)_t9mX5IjlKOfTCx-dt!1FCh6Z)@(eYli10+}ieJLZi{H zbe{Io09)JC94Zla-(eDP$=$;PR&5vc`NY&#tlXzCL2Curz>L7DnaJ?5FVqI=e0`sd z{9FYRO;qQ|+?~QRUtdjjb6nPY6-bJM7IU$Auh6mBy{Y%W;x=)Kr*kidp%G|NB&(&_k)gZckqLRbl(Rj zx>ZOrAL$=F_}}z&MAELF?x&=m%eHt)_Qoh80uP9>*VIPD{M6F+SD+s~ZF>XJ68!-G zh}my#`xWx%$xiJ{=0OyN{3CLYxa{Ba&hF!l{43snC1$_E9;7ha+gVMbb>a78{)yeI zLHShyKkqYmUv56?e^bEUyhFc&|CN5fb!cz;nExIA|Mft8Uk`GKX1U*=gg<*g6yN+_ z{QcUSz44jo{ul1=CjUMGKPo=90>*e{b6M@1X9D;|)F#vTr~2APzajZm~e(nMu6! I)7gFc57Kvu1^@s6 diff --git a/service.betaseries.com/service.betaseries.com-1.0.11.zip b/service.betaseries.com/service.betaseries.com-1.0.11.zip deleted file mode 100644 index 2f553c1d99902c2b3ed00e0f50108e6b579eb482..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21855 zcmbTdbC9pklP>sa+kM*Ir)}G|ZQHhO+cr-7v~AnAZSVItcVq9}yLV=1=8dR|`s>Mv zx1P$%dNNa93Ir4y@UIUo!bkew7XSBz4!{98nK-&y7@5!-nm8N$v$imCqBXL!p;J+Y z0)Th}b!pQ6GhEzZ06?IpAOOI>P4fQ$qW%K`3D5}lkuJuxsii{)02Yk_0OEfi@PEO# z_xLw-OhA|B^*`f(Lto_FLseTYpqCn*UfgfKDp+^iwPqn zh(eD%Oi0GnBm4Q-&;fvo2PWfiwRu?&C-x2**6*nMUy^?0)<=0L*DY{&O@Dy})i!23 zsTMchFVDQqT+-?^^vbDE50sNXn731NL`fc#?YU+)ieQO0cErdGg4RqBA97HgWT$ZJ zp;G6}#j)M+*0FK#wf$~fIAV?kerAPsSF}GyryfW(oEBnDNw1r+Dn8Jj@6#>wU#BZ# ze#^Lnygs=MJpubP^}+)Y1ow?-I;NgNv?ND-8^ewIQWT1-)7i9=)t;d$|B6r#_IXF zd$|wG@@40A^YLNTJH;kD1QdkzFd-w`(;t@n9t!F6=i_ezo5cvTzTUA%bm%R@&Yv|C z$lR(y%RO|+CS76Hd5+VQ)BT!+7Qo69VKA%R&ii)wyq*fLKfsilpEqjp0HstetrEGa zKcRbGi_k;8ybblbOzBBKR&a;YlY?KI-o9SQ<9^=zv?rFInqcHw-R|z{!qp+0P{`D? zJK#3trD~~dbZ4eRcVPLzhZC5Z@WxD*!a!ZjFtLa&N?e}5s?YV?oZk`OYQrLsCO2) zFV0t1*vT$w;zbM`!IDDXMEuOBiFToK-yuW?*FX%Mxsih>4>@1J?w%BEEIuC5kC@#~ z&)e1M3W8lI1U9=YGsp`HiO3llkl7*-s?zo#jHW-vD;G2e<#De@YGcjs90CDqcLl&4 zpx!wT72;B2uYt^3e{^Y}8#sMftO0H4N&Ok;t~m79D2e8;IY&nN8LC^Kw_nZ@;{nA8 zELZ1xQn@=oK(8Qm9|jEh0k33u{(N5-Zy#=EWwqefd6NS1+%VZ7$Coj#IB^^>@Ue`8 zp#!ko#{8vxo&!?1QHuoWx%G zq%jP}bR*U;m7S?@SMC9{DVbgAwi0w*173%WRNICcXB{8k~~JJZ7A`z z5M-15IT?8-&^1g=aK#j(9PDGk9Asxb1d#6=A4RyVknEGa3EitTD1iQntNS1CfmT4o1NS{F7iE2Z?>2(xwD#Eg;M>&K&A$6VXk9UhIGwbO&e;ETt3@gGCf_ z<&(#8k_iu+P7w27{?bHk=wu5Gwqbz#0)g86yDdZCL_KsU>IBNG01Luj>Vmm1*l&UF zkE)2ZR1lo8=zKsv)0g@hfD5CBr_~ZGABwe!KkX0n1q~qt5)Lcb2d&wAc>#W*+WJaJ zb+f7ZlM@qzKm2$)7>7KEE(308h8%zazT0?!$wUbCji)o_49+`YVk+;#H4<&(4Q^ zK0p2BSNy5KhdHzc4Jk6}?RT?Wdb z2ZOcMVjDZ%x_ryrK>&IcVUJZw|4&4AIyq!Vw(?a^e>6fsJNCA;{4`i%K$P?y)F5sH zgEY>(_VqG-XY75UbqPBQEEDLNu>bJPJ5s(7J!x>4tb)demkD70^yz}}yR~oym7mjs z=k7t}3mq`evl2}IIL&f4bjulY@c1`x3v@nWPe-#~umfF45MLE`w+^2X3CB)mUnI(Pzn;30 zz;i;f;aSpx+ofF3YZ>f*jXFvJK10FSUadYQKK`<_4}6?Vp%MVG~- zHnXT#5bxu41S0#nga5t=!B_#3wbp3H6EYGHspPh)C` zsg%42&dR+g!?I^{D{oOGEG;9zND?TL5rbNXP(k#iFR5SYC-k^dp!%A=@`7b*FW6(OBZcqKl}ak6uRp&&EwHXQFjLz&-=N5^RoWNd{H1YAEh z`kkSlFQ~wDkQBsnE3q#Te^Ly;NvD?%#`NKu}-I^j`Uj=r6D1fGFoI6QeW*}9RmWhbdnHU_vSkoRcid# zuSS#262oVX0w2S!y=A%}kD>3vK}F1^WN%lHsAI%g)F#;8^qZMFd^PH_C~@XO7((+3 znB>O4q9B|1-$&EI@8x+NXzQRp>kJI}bg$-MR^oPkf=|K+WgN@f!Czpi7D6B4s(+jX zU7;{Otop_iY=)H=KrQ4{_?Ukg@PXH(c_pa8>_yfKi)_hr&Kix zm6kOGF}OF24zvm!(RWqCzf?F>R~i$UGbAc`_%%%m3f<7aeX~UB=q5pRmAGM?@tmZ{bdH zdZR66XGa$@!NPdIM8&vgBRzpCpsV6OUhA!Hw(F~gAc(Q0OQo0kV;?*ncd?q%knjIW%v$uLNxwzcGM0;w;iZbg1V6CJEaYxQ$H^zOc!ir zy2HZAKbseU>Uh>7`B4TIdJkDHoai0@?&oiGwXVOreN>-)hht>QH@KN-)^b?M5!?hhKas3{j}Hh5iUcBV`yM z-l|a=IMAi&GM;gDb+u6>ocX3Xdb~tBBn}6^uEYSnCJ=Y3*7!rfl5-pQR`6hBKTj=W zA?gqw<938o^$W7W^>6$7njeem4KHw2g1vZD@B$JTH#|p5T`_S7Tx6$06IFaA(9EqiWxet`8EE{tjFpf2R6x)l4DV_` z3MoWt*=Hr%ulX&)#cu?5#D|HPO+M>jVHs!S;6p}H{=we@ONz?~?!lW8uj4*!1NNeD zKcM5GrP5U?C4RhgD6`_NaoPFDZ1OL4?o1*T*9N<;fFG__*oW~X;R^d~2ISu<4-XXC zTEfwcC&gtpxl7Hq$T4X&JgO_1xk;8vXe$wFM0_ku zV%88;u6$Y5u?T@-szOUR4P@2lnhE0>#uv%(4{dhI^Dgriq;R|B&(#`1$Aal)m;*{; zqCQ4Tj(WyNe>R}hN(_yK7*8P+=5>L@U1G><|NKfEv=X@|e!XqVLJ+R|ePBAQ6EvIp zz6RAyhI{@_Io8LE2R`RqQS^(E!Cn1W-e}S&^9T$0%Jir*@NUJ3O?_^mcGA|+1vt9- ze5Y5w*T9Tfx0p?V3r&euu%+G7b6H)I2l{T0x$ifY#0Ao#Q`9_NfFsfMN|9xA3vItH zlaINvn9Y*^5W4Gdv;<>*4n6>O9A{U4n{HWMS-jfH&|7!retEn|+?BH6I(2(R+}ahJ zkiKR{wJz1T{QWqO*2V&_ZfmB-a!}GiA%6?8QBH*n=6gCCJ3{gJ(zm*r{*0ZP`TRQRZt|#c*2rx>7ybxg zIfhVCt|JbK0PruvnQiQ9G(z-c+fOAVTBQV@X=_s2F;w zL0Pm~4AfV?jtt&^dnuGS=N$!kG>cIYaeF6WN^VFfm|cJ=#;F?f*LU)Zywx0t*b1`? zJpr=ubU+|o^y0lKL8%p+5g`GJlgC62t#QdBex*-netVum@Ze788!sK~kyRP~71u|! zY&_3XSx!mcK;5L%u6OHT*ssj2{@TY?qC!DAhQs>+&@b}{-AirDnD@TW>WY@ErCfDGb+ZE5+e#+`*VcmMT#WW(?K5mL=r?iUAm0x9)@XA12_vdL( zq@D0-%l^9Odfb9{{Igx5=0Fp96gclfQ7H`N{b)^J#cyw8u;?U%cZK-^kXx{eRir)p ziSp>SInOivbfV`KWfXm9PRa_ab)6`SCkr&7Vf_bfV%~xrTJzyY@-;wxV@+B#35SBX2^VwwZXn#!%8Bich#7gKFc=1QhJ%Yc2yTDdr4f~$9b z4PW}vC!7(dZ5$o;0Rnq%#4BmeI~0-o%_NTH5+(cJ;7+8E7^h_3x7Bb;dpEiM>@Ff3 z^!lT0d#KWp#(^>lGY)dCHg$T|e?t`l&fld_|Ll7k(S}n)-wb(3Sh3BJ1h9lI*wRC{ zS2{f3>JrPdxLgIR$Q!vzys;xeT)=-Sk`?G`Jm93=0bpn2g@2ja(DLReye#8+Rm^zOqr|?35L`Cs#y^oVkpf zz3M`#01`y?MOqo1&UCpUCB0Cd5Sonccdgqw4Vz>oyL7K<0)8j^9f&~XILfxJv``;H zjmJ;pvpI6rx@t?V*U+q0MX#iP7Mt;91uL}Ke7zP~cL+XUsV_)gi07ty{iL_EuFaHz z_rw$o8%bsKxt^7=J>t!2;y(RZcDHh?!PCPKyj-j#vlsRNTJGl#Iz)v-nc#^;qC(;Y zmihW?t&5;zxF=FdkbUU4O0WDlYbrpaw?J<0zvTI)(rjF#ZX_~0pHR6upy~39)RI@! z!3X}A)>)jZDqhEVxyELeMdTmS7F0ncFl8;J5cz;dNjDx?G(DTkj?BnDT~*Va zj9}Ntq}U=ZTJssh0sX5|S*G}`%Y`>+qf0rD%kwR{AuvYJjaJ+}7ng1e+yI-aKhedR zAC zl^jStohP-&TOxdj6(mGN)G~T7v01A$SLO;EGUeBAnuk8#hmH%J9~ocgz1$lm67@u^ zkh0>avmm@4jdL0}65%_OF;A1MMkHk@&jOJZPQu zt@RoY+MC}=-*3gkZHVPnjpEl*K@{J=GQOqv0*{&ZEcT-DnT6ND`DzqcdHq)0a-62K z_06*M!&ZH-Kty2691z({8~@(7JK-r$(}qO=K9 zf5N#i{1vRM7_ubFVjnb+LWt#9vA!wsu;l;LAWgbsVs_6@-gwwsMjBQrY5jx5Ke2HR z3f^p1ux)zooL7>75C}!OG*|VI*(^v(gLViazc~}swsA=`k#tSRcF;A4wxzY+~)zUs2E)Gm!3I#TgSZB%<)69WppuklF71NJKNMFNj{b5cZzzq!ZDO zXKNYmFl=x~0T#hU*6!H;j+n(QeYgJ1U33q4L2*n;<`JG;LLJszu)q$oh0(%bi^(@7 z+>zkalt)uKTf#Z)B|4RblM(WI?7Hq&3}Pt=5>cK%7O;8eI~CBmvfHsN2uqU*=%=W=oBwz(xjl;~Ec36qfo(_4l;u>`-LwiBczWhY{{g zkxd_q+}XI|GGYdh_2ADPf4rDR8<4LD;34Tp%l|H&Lro2aPx8+n9F|D;Jm>(mS}=$% zd}ey&a?uB#UBlb;s*&f|Nv{!!_*q=Y z74gZqJb}VV!mz+N%=j5UzIG}uAaK6yOis&YjDN-R+q*ART_nDa=&<~FWAmOy+;QZ> z5Z=$;jt!iv?)12Gha~ZO^JYpLG&D|M625mz>EGYe^!}vGw;b8(nOw-!(Am}A?(O(R zyi)n-VHTMkRr*R%7TrvgiYH-#67o={f|SVpyj{?F+Wzg>JT2qa$P}N+tY&>b$@7bR zl(De#{BbCMlDny`t=-Z2`CQm(^38=yiPe*7rt4EPeVSI@sQx2Ud7((xmoFQsT$WK& zWj*JQldI#OLF1EwS>@a|{{(J#yf%-zeA=YVs-?7;F#O=zCK2hPTJ55W@>W>wl6Z2I zB>@2qZ3xGsLb^ul2$FL8Hta5`T01Uj*Vpz}7yVJs()urL@BrsqB*IQ&*LIpriK@J| zrtKMa$KFXFcOzi$JYbp4>sDt`#jsB=rg7D~lwKwAqRcd)XekH<^wLzsCQ><8lT9LJ z*K9!S>;_k4hhpZT!_D1T%6lC=Zmyt)ojowuM4$le*4)Ktj|OC3*inc0$Ian*z9=+VIUQKrmVXaWIvWu5ULv?kX_-t45BCTO=qFCSHMKj%Ci7S?d zT0IryK9dex>6DG!)hw~L7;d@pgt)LaylA{yS|x#f)}KjVn76|9*K}AgN<80G2G4!h zY^j8dZUO69l{))vEWRtTaqR0t+O%6GOGn_odmwh_zIjefc$4qMyY}D@{wKL3<3Ld+`3wvHTytIB2BnoGP?O?sy7leJ`+|89j zZ>zIXlDQ^fOwYg8IUW+V%cdGqr}op0)+zm7IJql#c=C6B`6%wS>d zT*Bl?2Z!^|Ro*IzDwNQhkzmPX;Fh#EkFo;d8{8Ecuk*?-zyWuI@Oq|E)HCOkM+Ak` zSSn;RSeA^0vDxn}CYd#(J{rGXUi-bJ$fd--Ba#lS8#hk}t8m)aF`&6Z^3J14j$P}EnP}u*9tenk_Gd}Yi z0uRNgiM51f%5%UQKG6~?OW%}aSS4BBrxJv)6K%6L5JCX%m^Riwp5lVwimyF$HiSwt z7D*Ii7ZNTc1QE$^vTI9KHCd+)fukif)^R68;wXH%ls(^^Z_iEbO-^CL>GbK`)8S zD`*?c^A>b+PhL~wB5mwtUU-aXaIcr|5ZSEPB@2!I)Tl?=V_%jg0?=m2wG9~%3HXIwQ5Om7G*Ct(Bd_{F^cx4MhYiNTGll#^A0fJkmZifgv!zyzCxk6B)Ng8 zfby?>iPsK*C#$@6F-Bw4rIQAvG5$5jO&=MZda?-N+$5QorKOepNz<76;VyQefODVa zGjvp6PkJQ%4pcUoU5})+*(40{Nd0}aQkK&Ro=F!Kl`9B1N`fP76A!2a{~M1p=7o~2 zR+iE@E-{~$^ilW}sYcQ`Egu0BAyRezez{Koyzy=KBsTDkv+!DcEy#R(EzA*35ncZR z9i+!_^0AR)O&PE}5xDyti9o#J z2)E0exulKslu$(BcTX~(zlQWk*-9laOn8h2{+f+~e#qT-x5V#*B6bXcy^q0Y2l)qz)eKB*6ip=`2vO*kU@8m#hf;Bh zR*Tid$cY1&Bg~1z8$Iumd{#jpAJhnR#P~J&oN&qnk8F@pu7RcrxYXz9C%*@)u_zuN z!TwZs%xYPUx}R?m?}f3z*_YV6p{}%-LU{sTOGo_5wo|!*@d4^F)P_>d8n+JZ0Kt+|fl47b#3bWJra`uzMTw*w6MK_V zuPjVFZ=@FiZNuxqLo|+0{}oG+$)G|(X(O^0h%IEFrjS@WN)C`boZXibQD7aVWd?N? zNe?PayL%jqPNN5U>3iEgNu;NFPa7qwTjtY7h5UU5qqfx>SZ0ND2ULw7_p)y4#1Jyz z?_jcc*jB42EbG*$b-ps$iF+tqI#19!@wzc@-~OHgZCz`;vV2Iz=k&-5u#*n7#7%o# zMiG8vBq8^tj3bVCVvJ8a#vu4?9HYeSgB$`e45Gq!<73-1YhhI0&B(4It?9YX&~dkC zs$}d3e&rRwF0XM2LRUp>PWp`WFK8^lbkHeW8wh+Ax7P5-igSd*Qi(?7+7v+03OXg? zD*~w=@X|VcO?j`&BqWFysHY~tgP#jOR_Cs|KBQJy*L>zkhDS!8;X?MZXNJqkYWESq zWzUiM8=!j2T84McKr$q5mAIy>pb#b!f?@^9t}};>)lK1S_eNd(juj7N&jz2sE648- zF>p%IJtw}Ip_^bqVZ~3w*l?0Y_!i>Tnvn|16qeSDN^| zf-r5&DohmpS=g)M?O7O6AsAc?icTPEiV8 zBv{@D9sBJI5urUd6X8qq5E}YU<=pj`mWo-Gw#@Aw>iMc+w($OqZdZ1m^n=-jf~;zD zW+&`Cj1b3Bj;0t@3Bhk$Pa%d9-EUTUXr|Yo%S6ekn?TsL@Vhc2uGQ*zugetG1zwl{ zb9QucC^?!rKLDN&F0FiwE0F4TXBq2J!?tx-G2q9FmA%$4;gGMc?>^hj1gwIeQDnA}k=G?81CF@) zXBY20dNf$U-81!YwvQ`9|z8u5UEINZhvF8%+Ij9t7RQ z2Jm9>6Q|`wL7L<+m*+CIw~KoCGms8s+av9$s*YkpMEY(2N}yq^jTXllL3^}Q(z>r1 zxX*peDGwVQ!2)A~m5`pSns++Y15iTv$hiw1hq9;+vEy;D!rcYw#lh6jOW>4?wKS+c4uUPaXI==DvF%CoCdA| zG&a0RQL+2ry?!-sWtL6uSlfqJ$2#1nrhHcKtHgCzOmxoi*||V2L=o5ab3%ix&pt?f zm^f2sPYPt@5xu=(Qgm}eiWof(s9%=KBr;W78(6b3VbaO&ANNXSpf#*u2WZD_Jdzx% zxvh{#0#15f%RNY79AcH~qFr+Ky_!AN5&_3W|HOO;;Q)(6X(y?x0W`qZV+FGc~<2H=b)9x5N=B zKBEoH@su|PIuO>n3S!yrbTo$2oU^PGmKZB%l3Jdhw^<@b?jdne(-N;s(Y@L*4m?B< z^nb(N&~5qOUB-V&hH^RYwOV(HPRnh|x0oGd0#WNIEey`pVt#RX81$8E%cz+Kw`_iRe+pFThhHuqxU7Xj#e{FZ4y*2wiw&gV+u zG6N%){5A3#raGPb{q29u@~&u`)snG6wxjEO8a@>oq74E$p~OS}%PR7@Fs7tA#bwLq&yd`xBvyVD?@j zbddVjbyt^lgO#IyanvM1TR%Uv8u!m-LpOA-O`r`Ah}QipkNZ^0HxUu?<8!PB>GNju z&z-5_e$9sMOtK6uzpSgUi^}yJ>E+IyqyXY3knC+4{u|UKjR#zrHQnmwFR93ey5e7O zcpEKz1u@3TKpeut)7+ctttoPj;PyvL9sY@s+!Oee)lQ$Qfr$iLkf$6Z(Nr! zp)j;QvEYiYC&P!q#U+@fGVOwa^Yr6M^Ap767-=%O_zR{>4Qray>xp}465A#AD2WKH z3MsH8Up|q3!c6PnSO{Bep~0Q+SUYu zf7vf}W#!(rPSc&YY2?7dH+bII2BFF|9*rS<4X{OAn2Wdj3;9i)uv&hxHkc@p^5QD1^M`EDMmTL|LJ)jA6@~1knK~$!21tEBjklG+veBy6%Om1^ zq=|YEKv5|-o>kImS#lNX6WWWP_Oe}%WpoJeMnahWN1U4M(O+bcqjMesW9#XlP&)1}EJo)ib;{MC(w1-WWte+P!=c6Z_ELd}pn_4o+$rTbFp-VMQYE)vWYNVzyWuNVl#Lq! zyxfQXDsAu+uE4Ca`g588hTLw~Rwiy!Ajdw8XsrVVPNDxh85*8;?D+~_>dc|rFT`_U zVKe(Z2UbJp-D0<|Xh#69FsQzN?i=c+U*a3CMZTt^=R)Kbs2ol1fXfh?VWAdb{Aw1( z`-am30&atHc3Uje;#!W`&wjJb{j0a9U%?g*EJH;bVV$7JhAnri)y$2ikR_vS2+p~v_D0$pw?fLRCi?3lLp0KZ# zalX4D)jRQ~L(c_E?lEo8nGB9}Mz*h#*_V{V{~4Dt6i_u#w1 zE7*FpUr$Wl@%u!Xdo`)>_XOnUsR#p90!YraGU3p6KH|(wT=;4`f?*-?<-*m>WXexODl?j|Jvj z0bj87A~AcMgNeD<=e@UB^Z+}41MUnVxp-LbX|igppXxGrQ+_?3VWm?$?%&(dc%tly ztYJ4|4-B!pU;732z8|0T!H6>pWncwq-x ztcw8z653yk9;KB)ZNINifsTITiwwQfcE{PB6wT1n8exaEJAAV287_%PWJV z@eJGsur->2ZkSJsDiG6&J(zo*97H@---H!~ot!1a?HxiXixaP{Xa>2HW$B1qf_OT| z71{D}T%74HcAv`856MK2gu3O4CI3_X7^0pYlPyac8@ND3#`=AvG&(Yqr@pIp^WF1Z z{sZzqHSpDc3ewSMs-U2O0RRM00095r*T4;ojqPk{-EFM@O#z4ar_BB9|67dilO$ui zL5~=+az_CU+8&MJrGlCmNXpM95&$d_U~A!E&9E2O|9fKGqWy})u^!%JNCCEtD>L`y zIBQSIql*p8^)$%wui?agB+&Y>gh|V<50{^-d!``7kQ70#s9)Ihbr+rr&=fgfBvfd# zH_AanSVj4b{qoGy^mYC6UvOL7F)g<)QLGJaQ;|oB0w-It5|3#RBJMcM*BV`|w=lTsvEO`rAHp1Vc`ARF$tHKnRaNb<@!6i4AQa-<7$Kfn9UFb05Apqr zWB;Rz;$L}||Fw&P;NRz%qluH9i=&Z=)BotF_*aVMUp*E7Tbkv6()VA`$(}*+P(T1c z>ObukH2)cBClhC93tKa%|A))}PBzD9VZ(L+9~Lls@=O(<$7-RIsLMprv?CaJHcM{2 z>pZm+CtH=O3Zh#dN0*p2aAdrS=`%a+SgtFjZ_Y*5%;Sh5PGhMb5S-G_9)%+cYri^^ zWr*R+OH-Lv^_I==g(Qf)MKX6pH?A$m$K}1ESSW+4 zFpcq&lG#&pxV$6aA)N5bdd+{OQSD=Ggo|J&NY*38Ag%;f)fPyf$0 z82(E(L>*0Rjm-alP5qB{oPW{BmlMgs!HsH_{Blgj*jJ?TlCIJ$B;_YVK1?)gkhgU%C- zuG+}6Rn{Swx2^MfVC@V~bQsvjAsK~bNJkCtQ{i4Lt>HNAlca+C~U}Hxy#omycT-}vrvM@AFp_NaCI0U+mCke68 zo$k#Gre7p4qUg-k%nIG2HP~+a&crw{q*Ih&o3hexw^%truA_dkT}!!EciS)ZV2L(ixU%CKf;;97ykkx;>OGzu;f8euB;<&O&PVBt*0qRlTq(_|Prbm{3vV zOl&3ES**0}pgPzuZ;|awu`p2PT{fBCHs6^L)6mP{b!P|^w+tiBF&*p(PX9~PVg5Iz zg+iZeo1tfqW@@T(xk;0zV`XLqrG+MvUj?DBY@1m~{iNbxwFXo`exEtB;;8j0cHf-l zdEdF-Yh}6h4sH_8zH9_Ye0!F=zwlgTUN&j%Z6kcy&IWR9apAXLJh8+|W8M4HBYPDx za!2@^191j$#6#qgY2|S#g8*nR9lEM^A*%`Xb57#;6#cVYC~EHwS`13*n`J}|?bA!u zYub3^9S9t1x_Hs=a#It@T;>d!=U~<(vw4pbqr_-)kj*2LTdlZJI;#7oezw7IkwvDL%Z{8FEms_E6n*QJ-zq!rtm6X~ktl)}VuA7Q${BEPoW|C^U(3#D}%2SMm zKR&?@g^p>&XKS-3z4sc8|IlwkDkgmC-Y4dj>jd$;;ta*f~zqp61K@dEtB6waA>r@6(1(FCb)=hgP{138+gU(S6cSJkjh6 zDvuvPm8hN-Z`$RB$j|{~IMwOUZn97QT^)HYnuEwFa+uwDLC&fgM`H}bzYQQcDC!mP zqbFjWS+iqSwH)FKuz~xi#AzJV#5RoJn=bw6Z%}qZlzqB$$Ju7hqJ(Lt(0q1CXvh!{ z_=DVma>(f(OD2^{y}AYJOY6?~^WNYdE=RAmFR=b&;0Gl|%_6v_7|%+UauQqxpolyV zc6DXU+e54>Om>C%da?w3;VMiOjZz?t{Z7@g?w3|m*y1oK;=IRYn8QNMF+(Zv)T%8M z@DgH_+mF&4xNV=BZptckq};Jufi@6Q(1ETHjlT-67e8?EoU!F?)Ez*Bi&80ds(^-P z!@{aw`~3Ah?kA+0k`E)U+k*L*B+5T+J#4QW=ApiPm@wO6v`?eQPGX z4A#ZKyT$F~&_55KBr%$ja*`Wid*M13hpFkSEG?*gaRNUHAwsTOVYLJJojyNK?tJQ) zjbhnQPT^O$Y^gEKX{39qXDQ=PU<|#G9_@@erAcjB0C2}dNT!g3ie`;n58`$cT-j)c z?MUTwlL=xBx(99g=(KvTiw1Y{uB1ecPB;ja+)vex&Mrk|5s7m&%n*GC+b-%oL0x|4 zqxJkNo;X`|x0Pimj3QGI%nJ2U3BVS*f!ia5zhg!j@d~#An`9X&AS0!=bfwMzsNRiw zPY2;M3C8St9DA)TMD(Farf0bQR!^Q#!*1oLJi@{hoxirYuUEY)`5hW(7NTlg=!E9z zEcBitj*!_jn`{gidB`YwZ!0!P=P(Se;kO1uQKlVBYt>MDfff5SD-OX*Z7m7mSZ zWN^0qKQ89`{D$=u*%_7ni?`0K+%NxJi-DF1r1PhiJvDYY16Y+crle)EP;UtN;0i2v z`VxBWM9M1V?F6?ombbK7VfM;XSo5hrdSEABb01$fJE*=bo2a|6Tpl1h=Zw+xhP;SmR zqN`n01&v+j*NefVL8^0}n6vr9l2-ebeR*FZ0oW*PSS(*_Yr4k2=1Y8d;F`~PcOYaZ zWY+?|f&SmGvx*Y}iaa;~U>Feq`2FvnN(-ZZv;})xv;QcBzEb_-TDbb~(<*L-DG3c$ zR7OoCoeJGB5==N0IxZ+p3{y-GlPO8Y6P*v%$X%f6-ck!cawMfb>`*$=b-h^ibHPg0r$)Wd+kH}pNDA%yA~HqPfGxx`oZ4qStb8-MH@t^ z`Uzd!7>s=Aqn!h&`S()@v;fEa+=PMv(vn)gGHQcDa7QgVfH(`l?+Fg@hgN9^0RCtK z_ZpJ}R*ygc+<(fC*pUIuIXv08a>OB%@kQr7E!Ly@+tDlI_KV7{i=R8q0}QeOoa3>- zA$%UVLBiYhe!F3lO&e_A33B_OSNTHr7n=uKi+G~@0N*N67JLR;IZp@MZsbdN6mCE0&<8!HC zM9(YE{$u#KgZM*6&!Q)bQznExURkog8FpC{zuo~Xs+^_ z&bp?aON_oy(7C2@5hh@p;u~s8gvQ1C(sQEzTWUPvO-_!py0Ke{t0pO@d_^{47-oL4 zibgCBUedXS$f%iN3mJlPsrHg|=LTAY%+bV-DrDteS%OSmjiRIrDN!bmU{0Q4>x1@U z&hLfy9np8Kp@BG3=qrLfuXlf~aX8>nlJ5IK-TIg6xhnmYwV@(079$G@E8!?bfJ&;5 zGKG5lq45L%N;DG6`2gWEX8yB6*na-)HKF}o*G$It!m=UU(}B;pKb)q7&1Z9Mv9IVB zr7m=ups&k}f4F&%T%Z^IeAUvm;9W?EwewR1wA=F|9!xjdjtog&B)BA<*z#GYXOSz+##~){i z2OC}6bmKH;ctLXvZ|4iUnOC~$kvV!irNJORnahgL5V(BG3-U42Ks5@6j;u>kKHs{p z`PDCOmI?JfTrNPPawO^DhE;2`bj6+?R|qmZB4mG^Jf-PVkJG3OX9%;=-+bpgGX}Bx zmd$RzLd&~w|FvCe;`(w76&uM*8xhL0QymX*;<`6h%YeGztVJ}(a5ih3&eyPYsAI3H zvXbW+&H`|Cik)n1NGJ!eB%)UMsre5<;B0~lgw zQcqlQYNu1$JNu?_H13$E_r_cCN@)STV9*B6q3l2t#DcgQY?S`Ub>OV^*{ujz?w2pZ zw&we^3{Qy2Yn!Q2mdoa?V`3!|@r<|V#a>f4zL`MZ{*`#{ zqfeCRmz!1L*4yxoQZ5<+BC97mW+^{#8lQ8Gg(4p ziI6POpvWL)EmL-73E9R@gvZv5HTxQ4tw@%!j6Ds07UobUIa`?~MX zo$tNpd*Ao-iIl1P5`j{96|!0zP%Do2s9#-HDs5k2T$SS)@5=*Zr+PWb`aZpOFA8}R zyM_snIcfxMPI|R+m26EWwksSG!hSR{_!+wnyv^##vLsA(7BfXR*Cxh%djc`He4R&| zil%G?jE1~N^PXg&4ZV9_I%qo4Qw^?CZ}~`1KtW@wm!X%C->4q#j2SEV>?Cjt6QOLcSEBHr;8y$wj>3)(Jdq{g5fP2cch zUaDHU%S&o_`+an|)yBchYZdp;Ip}6a2u9~J8tLJqg)Zow7*6#$mG?O-U4qSnHgQsu zJKTDVOpB@0E(CSTUxjNyDJHP=n(f@3!d83AkA~+^={9%CWh_-vI>zbe*4w#Qr}1UY z+ER!0!+}HbYVP3(H-;OrHpGmtu@@BhaZ&G-E<3S{ttpv!Dsrp3u@7j3!s#hEshI_+v zPc&k0HL3%e^jrEWgy%eH#E5YB#fuuYdDEi@Y}!KamNQOIkRvzv#`ou>bU#M*i;c+R ztGd}a&!Mgf6Ig}C*(F1|0w}F-^DawLm%P8n)HQU~$)gAZoXvg$0XrWtz2vmAZ@n?7Z%odL)3M+5S?c+;Q89X2R`kpu4kRslOHM>Wq!U%Fl{*=P=mF*^l2z+MsCEK zLrEy@k8;6mC!LEyy|&RJv=@okR{;q3#wd$?!0Q zpRI3O^S%uxzlXyqGwO2tm_+J4-vJv!|#y254)YR2vvayTpcYzcxYEY7KnxjHM@lSitTSiGr*}A)}D>W za;O+x8J_y+%wPd$bG&zyrCFk-=8L5_ht1?h+nCS`e0{?^Dp-oX=A2ArKaFqrh=SS% z0+Hi&<4$QpR+B(XkR@}d1uETab45lD842fB|L{g~1uk>YJ(eyTDt{$e(l1WdrMHh> z!9d*U9W>i6B<>Eb{;DKU?E@-eSmSP=Jp=xA2s`B3lkPb2WB6NlPJTdIPWv5yP3R7* z=%SNFEt%sMqtaPS8hN|vT;QA0mkUK7$wkBD_&V3(EZ7fJdDU#5R^#xw7nFO$!hdUx}Disa;O9CvqmyA!4Z86(WUjQ^kjuo9wY{XL<@kW9xa% z4`ma5bmF}DmJYf|UuVNtv7NuG(Kd_sTYAU=q~V$0FC|gG(Om4v;&wsoZA*7>E_=ZX zt2V}4F&K4!A2L6v z62b07M8s_85u(mUeGreSE>C`c^oybsPaCY8eBPCw%}aiS$wwS&)qmVAehsbEcN0{6 z#?sC8k5t73c;s6>`mA%($Q%$#sZhy~mnui_S{X}ZlmB^Sc95cApH;~re5T4kM)jj~ zdwJIzV%%rxnM!IEK$ea@Dibv)1G6x_Vc_RF!gCNH?jh`C_#ElUP%`H#) z%kJp%m?|ObVme~5Gz5kX;nNdwtKdJoPp4*CqU}hB-sRMpE5i*eT&EW3_OFUEA9@UY z&o<^GqJ^PtytkB>W5`y7IK(}0yS`n1&Cpy_ULG7~r`A=)J39u8x!Vw4_(V6UIJXJf z67Oay&$^yv+LPS`_>#|w?24otiJvs$1L11&LhD$SXIwp)Z;2 zghAF%rIk7w+p}h}Frs799hrq3{qh6Vbtl*3Y-TCZTty7CGBlW)!6fM+NS zTebUv;F(1%e5^Fk^z(RPtOU*{cb+qcF1oNhyw{gQD#m>(xjIfPPg5@g@aTB3O>-@n z{JNR_g9eRCr%RURwJD9X?$em!A@r(KDL}S6jh1MPa%OFp^j2=FvS$FFsVyQ{$9(ER z-6wWTRDRrq_`NJ5Yx{h(QROw-%j{n9J=vbKKE|6IKfe1WNT%}0lz}3Uv=>Mu{eDs9 z%={+F9I~*zZS_}b6%Wbpqu=fMSp@gnKRRQJ+#aI|2l zI^xlB($|nhleayuL$MYW2$a1jxPbB+p+0Fz!Ec-^D%_x`B}-vw`HrpL^b&;!U}W$H z?nbY)aED8Mj37_*e75qr*(*G;JxI{U5Td~vbUy6J>E)bH+JhOaUVM^K&QEPo1?$Rg zk;qs!>Asm}`SH|H`+Pcc8Y7ycL#?$au~*?}Md zu_HT=#Q8~P-uG~QSG4=g!*(+~d@^5@FHJCq$1`weB=Ea8986WPIY{#U%e?BQQw_cDjKNA|;i!EWDR z{#6Hl9%rc?y8n>=H*x-(qw_2H5A{3!obBobWd1Y!|BHd>ju^<1vUc~F6Mno!fBo0~ zi~-3~_&xbM4TbIU(f^72yUKqIz|PIn?>*R>&XXQMAbTqRv6cGIGIy`k+hs~=>yHCW)$iLQ# zID4I)J6GmbkOl#T2K?Le<=`vxugU*CpaXCKPNt5omd2)ZMyAe&|I95-o#>41e$%U} zKmkB}sCu-l|9M^9VE{m&XCMH;zXpYW08#&efCQM>`pSUMALi4c0|3h=007Cq5BR^} z+k5;Ay_%#)>ju#M|3zQs{c_r5YwZ1~>nkEJSz5RkKPYyQKX0o@de_T#w>iDx!ixzb zB8)1LEgrMP0zb1syDQnBpwkSd8qEl^rKH!-S{EPcEcEM@`ESq{ zvAkvcg}gbv3Oxn;H1om(5d!y(Xg;BtMzo?pd>hA&`ce{(tJmGKmeZM~H&GN~nOcN3 zV}e*>Xx*fUT~BT@?KhuXLy-Vve|^0kyu9Gkt?hU6uk9kt&cN^Le*R_lPkTVUxyPo9 z7mcEc1+Y(%za-tmrxV*}#d+(#7ig zxO=&e$nj_A^zidzH8{m4I|LMj^)e$P+cO-M;17rN`|}GlgUw-t+1%{fBRcdIVdu}8 z3ubQDpyeJpWRtD3=sw5k%jC3~f&+ObR=J7o5f7+8MOiwa#ukG}7cjM}kPby~W z+a2;4@lm(dHMz6UqdTyE5WopePkLh}OJkreWtdvV7A3AMTvzA=*ae26b9eia#YN-G z7A>b96mevo__X~;8ewke|Ja{kV-pzl^{0BkzVN<5y=xZti^D7DeGF&cB+mnrB?MRn zdZShDmYoybo!ve$A?trK$Rx#R=F+W|iSj`2D+ALPk_6^e+67z;|7ZeQ43u8m8ys9j zx9e)tyGF21&k%p$L!l|4f32mfeu=Gik+dC}q{44eI8(n4>D$j2VdEJ(BUlE^Rdj|0 z7sx3ZB<_f-5qMGfPUsy*_7@%0QoI>4nD8?|e18b;j(bcAP7Q^x$=9ZRv(~+@ig{;& z`{I0Mg`Mt^C0@qB5iTqCPsY!Fn(7p)^dCWVau3G9Sr|Kb@>1{z?Cnd##uDHW|A^b| z_P$-8ts>ZkLSS>qv4Fgwkcys@1DP)Yp(^hT!D#toymCWxQl0c^rZ&~!=MW0gxGMtY z0S(T1s1R3@`;Fu_24l;EJ;3QB;*Ds-Pa4lSe~UwZjge~ons;Pkn5Dk+dHdxoIT28d zz?>Q)aH;oCAbOaV?%J+H>-1qIwv+WVB_Pw_T9# zp0R5gO84m(sEt$fh42VUx1EhnAm-+%NlD~QYT(AS)LnFh*NwDx6+xetj5=Dq2rB#JP zW~iI$Et0pyU=l+mxnYRM5e{kuH5_1COQ-lQ(D0RU+5E`%~ z@JCg`S}q9ASaLq3nC(w}4Zwv_$J1_&RS3n}BAD?9`htcK1__6i>W9|qySfCwRBL-B zqQ2cy`^kxkAsBf)8;V1oN0$XRGDi-;0N-mm#AGId`o_~8cLwL1G&NIj;U10t?GGQg z)yf|-C3Jy>0LS8vB!c9WE7-N!AFd9kKWaxlFk2Y+DfcHjqx1Hs?e_N7@NV&2xfKi= zcp*Ri^jG|u;D-gYCM_&P0br=!!VMH`3HL?J3oabRUc}-A`QS*74c42~zMpYPK3x{d zp%;U#&2k4j-KKoo!a)#v4Pl>6*`PKeJDmcuGh5}lcOV)epaXkHMqvglF(69jFVqlj zBclw?g3iqfLs#s5p-l+~D=ahUxrqPB>^oAvFaud|x16HphnFc};q2*>>AS6P6;*)C zlK1a}>K8g-fp;~S;cV7>|Q-=cmJ>)sqhns zsB-I_tSe>8T#yOjMxjNJexE(B4!H0{z`{L7#e`bs(41Z=K4DDjMWh317Op>1;t;$qz!h~nN^R~ zv@Wx*>^IN=p0n?D5X$pf?0Z@BY}Ml!Gs^(8$t9+el@c^d_Q*GG2|T&mf%W1bMV{vL zFmowIFPyb|QHE9T)^^^KXjocCfUy)%BohXWE|H?xOMlXU@=xeVrC{|9L**sw{2pc7 zTUkAqdqZ!K+t9lWhsq>GS}H<1zsPEQnB!E}CSyTn-d#A}p{9y}8?Ua@KFIhg5eT?J zZ1g+h0Dn+{*$^3s)plZkBEgPbhsBX zF&Y`HGmlN=z|i9sQOvZ~%ZYB6mafcO7L^eZmI_*A6;glQemx@si%gO*T+h}!7~AJHcOIYL>zu;cB(c zLatC4AJ+X73BN~F7C|lLRry(d8S;ZSpm`;z!t6&jh=^_>@^P}nl-#rReW#^JLZ?(U z373{N1~Iy~hz+(09y4@T!oO5FR9Bi1TQDXnd-yd^2?^iQ=V3})Pa%(HPC?NSZ(oDy z%NXjm$8WNSSuE8<{DuuIc1#`c;!oEJ;)n6 z$G|l0n_mx3l|=0c4Sr9#9b2)TI;c`VO_@Cv7fNO)JDZ5EAQaW zaQdRHWlCk12Vx^HU0gd0ZK6nf z+-~V(^>N`=nWLv>VXFI#!73PHW=gy#hH;@#wUkrr6=f0GMuHYoO{uOtDHUZip+Sm( z(J*l_OU%@4_=*1DTASbFuE_DXaA)`qbwM=!a(2`SM7JHRQii&e>_4LmqSv@6CQ27- zWB!YUk$=7*3f1|nP5Pq(Ec_m_QaIT+@jW2W70c0K{Zm*!|fYl+HrD-E)o%HKs}k%bqJkHZz?c>f$ya${?c6_Hzr`Z-nC+A$ z?P;xxlyE$WRI34eNx0!T(i%#MyWpa`6G-rZB{$P05 z2T@2N(kniz(S9v&5iWkCu%kZAB;^rNfyOZ%r%CKju?^XmV#0skt{f^aTBIwZlG4rifNK<}x7vOnZ2s z$kh>zWjra}I9ZpgO;lqNiyBU6u)g#%xcz}Mmdsslu|iP$%YR zT^6^2pmycYs*Xhn3{w+c#%Uz4zR*gT$S}D~hJR?cOI~nUuq1=qqj;{?3_1}?FT)&E z78mm|UUt+sIj-G=QZF$w5oS7rOjytZl5mNksH^>zIAkq)Px5-#oP{7#kAG-3q8l`q z`o0d;LXLa!PBq@ohX+3ITv7CkiP2r-M8SBFWY$+o=Z%#gP zy;+l&{rWQW%rfX%<`4N(h>db4Y`Ddj%52Lny#|gv2?qC7Y&E4vLWQ%R_}Mq z^tZ4RYjeD;y@&}1!cE_qfDyg-|r;bm#ZvE)2LxmF*i#pxmh{59_Q& zJ?rt>nJ2!!?4Ef9f^`8NuO@}0@UFMQSvfiV6!y&Cb6I8C{% zm*OB;#hr@d=*~<6&X?8i;hSl|c#C75GAHu5Fy;?JlSV*oFlxkjTSON8sx6;|$>tqY z;SWsH@0ZdioV6Zocy7ckddEN86>1GOQ$&IDEf$r+P~DH!^jF|}n}9_p8NMqn6oA};U9KVR z+fSB9x6gZ?6QmPAud1LJICD`|Sa0Y?Sw2~!0gV_u=#cOg(AjL zy2)TL#=eg#6KN7Ct2pZ*-}bv+-{w!KV!*|_G-~aEw=rEf4fO4>hom+8ENK91=%OtH zbVsGb^PL`v0;|h)u&RQwtK=I862v9^r(#|eCkx;zQkf)Ic7Ow3lIiQl^xogRNsFk_xh8fjXQwV)O~harNLQNgR=zrpkH2K#jcEKjB?Nou~|;%mE$Paw%ST_ z1T_&qL%{CHUFWJJwNXR6UKPEX{#k6!pB1dw{`>2-$fi^10ZU_1>QW*%)$1p{gKd4b z47@j{V8mEDqu=$sjQtUBUJLiBcE#P=tp-mYL+EO$lH6Xz188M{C+G+j4rP)z5{Vj# z4_Nl=kBuIJuF<||DPi`J-x`C;UAr zdiV(iJ@y8HjS~y5@AeRdkF-(hCl(TyWeYbw%ec~x6QTT3R^bTe5S*uGF$eZC?zG<&O=~`C~9hYF?S73 z@1$I+UisG7bcsD;Kv2W$yeQY)%Cd~CC2K_$QU+7eRt`}Jc$9MEg+``j`}3#7$>0YcyzZT`I>MpLMnP25o#L?{RgpEk6v#1iIOVyYJ%CV~HE^`?@x| zI5R|LX>dw-o_~lPctmkNX{|2pZkxHFGKBEO^}=Ozx*4Fqd4#!QCZt{ks;NABd?gI=7B^FGVn z&S)@5^}%1imWD*_cd|Qy_x3cDV?NB*fL$SmKfj1Ba!31^E?i3GUJS9`NYV|IaJ#wcHLFY(tOWUhhQD~yJE!>?`Od!`nRl?S6%~_D)a#sx za&NPKjRUW2m=%RwnsY<}&R#r%h^Dh9ykvSJ|`Ig6VuBMb< zo|lGVnB%DBDaE(B6iSy>$v2EIqSpOJV4*^==Ov^%u2E=IXKe^{lT}mU~a6o zqNn5-L{zE{{8nbHha}=sV(*BLIas$U{=;+0f0e;l7)9X`BTZKIP9;XdepMOOOJWE* zrrt`J*J_pMIrA@8h%tq^wQ>(q#S@a=(|}t0rV8$X>TTQ?J?F4CTsGOgDc3M{1MkXT zp$#;hhxA$+Q@8}oKCw@J1W=FU6zsh;2nPPQA25u#3@4YCyP~6u3B{st^h!kcCq4T) z7$Fei04o-KP&)9sZtcvg-fuEb-~n|4V$C0j|LMg$x%kMGhfn&JqX7WU+yDU4zwgD% zND7O}DT~rMyF35OiTBv;(((rS|2gqB+PZF=Vu?Pvd>_Q`XQT_93@Du3+)1wyi3C~P z$QAL)xV(WPNg}YoI4lGiKfZRVE+BBe9L!ED=1hMi@;iDi)m$XMj_I-d_+s;(M%{7b z!w}xj-%bpjtN!ZqYHB5*3jG4-RdEqlf;eZ)Nj`E_jgZEfQfjv3n;?wnR-q zN6YpcyL11vpQj11e-W_4?sccTq-xZ!AJeqvUCN-Ecv)r^P_!I`0(xa8`a4o3R*PLS zWzT$2{QMSIbeD4Wq0`OXMA~};JZ`?AhJzz8*Ho|o?aso*c%K$zLBvcokM&wp+O-pB zqHIu;-v(sy1$+5z8i8%jpnrj6STD`JY@xGKM}1ta_qSBx)>2kuLIPRAo0Gv8LME2FdxJ)MZ-Z{A96#;fq$f;WBqD zEsaJh$bBX~w(=P}g{ygDT`}BB#v!xV3c_N=?vcc z?zvJ)S-k?b@hT0DyI2BO5|h~1#k3i>O4iQ61NT7et^7;Jt zgirj7{< zX|PnuX|b%Bh+?zfTTL@-#(Xq?y}S;1OH)XTe@7%8*)(mP4OQWEY+yihhvZ#Elb&Q3 zsDlT;W`lbeap8EbJso11yl=ghE#?P@9L_Rc34mcPmxW=F>S!ObZe|KCSSlWTMOMz`#+jUZ z4ugkc)WllBGUqwqjht!=m!)q>F|LuW98e2E*on2<7z!f*cg~m?oJ?~=aL3o3I~zeI znTRHea|nwR5`l>3H`}$Rs+n%kguu}endrKcBMDf|j6a%$_@_EPok8%_TU*sK9MHWy zy7a`o#xw9DNk4(d1D9Z%7i=ZbStlc=?))0X_0d(%3E5S&J%+v4GNa7PQ*x~qF+ydy zg;&8u%8sDuuE{15Q7c}zPGuWPrbEw`IEqJ`B{+cjy_Y2&%T_C#6$|?b8GzY6C40aT44o~2>>Gt9Tyl^()8cDyAJoXhN7mgsOA0#$ju&)2 z_Wk?F(T9q#z(lrCG5{E=kj{rwU;W^>v>-@T;@pnFSK7OBTeRKj-$#eiutRPiZp_`7 zlcI6=(pz%n&(}vLEWhZ-Z40)%SlirlYTr8tNA?czO_M;**DZ4v#z zB0Z$XNb-cPiG8H>0&2eh;LrukQY;MU1mgLZDnRJ`QL67kN9Qrvgh8^eNqFo4cLtYF zBGOc4Wr^)DUK|X}<(3M{bTXwf^FZQ>j?$~xcwvl?tu&M;l10IGP+bMEG8wq{9Em`( z=?J&SlDVvd^psFU>32`MkiU-fNYzFyI6`!S2L76jf_}u)|94ry2g$!ko4g7ua8qP* zfwJeOS*WxmLCT&N5i#lNCna>*m{t4)0{Z}i$qup>ip?BMd<;!B9|%$Sj&M2){)b9w znogU|)Yyp=movRzv#ce_g$rH>KT5D{`;69~z}=f_@O+(_O#-mHEhm8|PvuTClsG}d1AC2% zykXzX@S2;-edu|>3A;@%lu*ra#mHmSHB(MpzY`gBaiG4+l^sr~Dmf@4oI6_Dkq@Tp zzeFi9ISKAm8wYmq8ld0D0&Hm;4@rtZTL*G|R~;xSIWDsTO%^vS2sWoXq#P^prOnY& zqcJJDbEg?&rQTDGHs3O8?j||~2hIvmx@gb*J*o(}Yv4Et@<~FSON4s_J8m0utf6(} zO7IYNII+X@S9Q@|d1Iz7i9Ojfs@PlPZoR;)y9f?F57HvuT_PvmbI8#3+cGz>S}M-@KJcWiKPUimayhK10{t zp1G1~0Qi+p5WBp_AqZU!u_fs<(!Zdo0MkLYaD6cFRl-KoA1lrg3QIK_k$X!JK|AP- zn7;_5deBSz>^0@RK9h(rTCjnJ5D$Jn{6vGN>gI?>aYO5wGZ`Kkd6pa5%bo=;C#%Cp z5SJrI_D_J?9a|aR4I}BWgmvP&o}yxyXb6fmB!})iGFA_zv)vm_@jF&LkUcwm0-wBq zKg8e}Vb8q8R)$`JCAC{LLeLTL`G!_V5it+hwyr2UmH^OHH7xMm76csi?>2|C*n?-W47<|A z=T(Fm6E+dz=+ENDAn?j+z^P-V*{kbBZZL4Xhl+xA!ua+~DwA%bUQ#NL=ITQ@PH~EI z@Dkz50q8isFGPgS{A`3T?L%njJGFE7A3AClHM%mld#LB@#<{}#H~Kxf1+oto7fSM~ zt=ZkMi!dS_M|s*}RAmIe9eu?ZDs;a&nc>+!!){Y$ryfEP*TV10jJP)Ill^WpR2O&= zLd?0bso~^kmiz#Cez>&qaqd9syWJJ6M@`$d6;&qX6QMRy6M$fMk&&DXwEsnB{Mc|; z+=fB<9WDt)ODR1(_8O)gl+`g?1=FkFA%yUDe0*eVeglGn;Sy1!@pvLzE{3D{JL@}}(;4kMKQjjwtx5ILNY1t;VgKB*~l>T?>o z2hrH^ro_bWgZBs2y;WGZcw%iIULEUkpPKX8ysr~CTrttPCg$b?xe-NOJ1&R}vp)MF z4PfHToINR#kw^9SN664Ej3{IDIiY@8sgTN6ZEs@D#e~TuyMNp(mx0!>fgPfqwDU@F zuI08t9t%3@dr{n15jP_$kca;g0c@|dabj|Fy(;I=hq{X7v;bGc-vHOAqxA+xfhK=%TlLs$?+|8BK%9H;R} z&G#^Adr@c1vAZ3xP112x$A2_nD=H}N%{E(gxJ1jg(f$jC+7z{jdy=W;jk)<;=eR9_ zK=~PMXo07)IoOG?-dzyO{#RFXIL$fBCSjSWayF^;`FV#ma`YY&7d0*MrWD<)9plhL z6u|%=_LhFz|L;}&msBXX^M0F6x7dvQmO`ufVI~lbuJYp0d>!T&H@eq=!(zxX-&yp+ zEGI?T)%BAp({lX+`*TWRQ~RVzRpq}vs&@NBPX^lxUl7}DS#<3kpnbk@sy45Y*7@%V zM{FvfqyRZC#>&Ewppzio3zd^%aE%hYgH0pdSeFZPh+tHJx=G(`VtiT z&|`5(P#dOx_GuM$-Z`bJ{K1mf@xER|g3%(5+hh$g$AO`F&bHcEv%S>R=(ax*dI;w4 zCBlcPe_Z$U*f!ZX2bRW66LbvnL#uIXuNr%x>wX9R<^|Edf8}+bPWdJ#Mt*#b^&orR zYWewVrgTuVX*-)NOD7=bD&nGgGf#H4`&UX3aSKT9u8iOf>WbC_uFQshZR?kGWMh5t zFF3r-R{nw*6BQs%5s?|5EseGmc}H;j>2 zE0|CiI-gi@rPtGuqu}Ba%u?A7p}+-(iKK-|5{iGUnOuTJv*pHht(lF)eKg6P5_^mKbXk>Lhx&x}5v0BB)aM^BKdh1xj}}+wHGd$}!F5PcM7S%PMMIrJ zD57*w)(s&QIYZ07c=Vr7vqr#__jgGFXr>%m5-Y7Piyo(Bhjt;p9k1=>{uXU|@{Va_ zz^#yaMftcj{dzu6EaK*HY?c<$Owgv^JUncJ+l$UEu9(6d zgEF{jDHwIb?h(9=z@X{QuN~LTP88XSL>{*?Q+mR1PkV9q9m( zks@t~pR6z?T4o&^2E36HrPoT(kU#p14smuZAYg1i9Tv*O{ei{k`efRZO>e3?E2ixA zQOsD4wzC^PYF_%J>P*bu_O<2lNxyhbN-ySH{$AGEme zn>C`g-N3y)K^`EsC8?p`30dtKahADjavTtEz)7{A_!HkllLT3dN6UylsAjS!LKz-{ z3n}Y8%A-!Z8dlo!FTITLOlvx{`rchB5))Q1X_PyqJO?JS(^{$K4u~$fIOsHf#fq`> zAb^+q2wbNPeZm!(S5|+n2;5TG?b*u4Z3*VshY_!L!oVpGd?!Q0(~Uo0!%Lq#^!SB% zE-r3mzvsYe>b_g<^%w05!W9NJ49tH+-3~~8!?h~ZboO3~-T{@P$sckXK{GDaAxvD) zp?KeNSwg^VQqAp%hg#mqv-sI>wYz`y^$sZ7!hvO|>L6?o7X4<=-LA7#Kr-%rfCWi_ zNR#K*voQU~WakuTAJu!h*p@Q@Qj#OS>~inL2EG&jX7~2&WhYLa_`Uvo^_a!qxEW8> z-^R4i)0pa=c-yJ(f+hc$w(rb^GpoP$y$a%kvJ0PQ-jM4T`LyVK@4)4~RFttB*}eF( z$gz^-1 zZukne5$)F-lXvnyS>|3%Ch|QA`8jnW>}kldqF-9{X7QN-wLo;^{P=fK$1js-Ygl<_ zodqxK zP@8QjfKXEBi^-$35~v;j<_zcHcxy2PYfN4!ae1C=ahY-<6Q;DS2S34Kzx2WE5yDiXTEz;~t3|5}-ub$+H+P}mo>v>5%@=`|AnMn%jM@-HY&hOP zHVM{S0W;<>!P~~#2jmQ2^yK8t703^9uY3B`*t-3gcX@{Krw_{F;-WjOj{^sson2lT zB&}!Q4uHMM9CXuSN=%W2Ui`tr^Yk#{srojoDD3n+A#VQ&N=1TXeN`*Sojgld^a{k& zIj+c-pY!ruZ>i@@o?%!vdNkB6Pdxdb%a0)%=`q=IWU+yZ#N=$>$I4@)vw0eO>bKv$ z-{n6b|I-71_~(NAI(L6P6fgjQ015yQ{QDlbp^1r|EuH&sn}0drmjB#x|KB*^K1s5+ zn+%8{tA8oMK|7+;-BnQ&1IYx~1OtF218glFY#8_B2Jj~*EIY0_9UI_HhZSMVxHEHK zPO|ouJzAKt{+tCl{xM1$1_No1Nt&>wdcNF${-h2<3`r5K)wRFziabh`NoaZEl__%``=PhY~sGzC1j@k->r%@V)ek5ql)UGA_+` zsdqqEI4wHIX?nQihm{kcMos^z(6El&VYroDW^~OqA@`>&M{HyuUMrGfEgV0Q(F9uS zs8wL{;-jCf#!am|JRR5bm$v(^{f^f-`8rfoOP*$McgUL2gFZ~e$MEriTVj|RSo#P= zLLsxsDr60W1a6GLEN|P1(bUP##nIT*>3?)n{5z*C|5LsH2A%8~6b}Ui0HprYY(e{< zfp#)=cDA%Nclv*%{O{2CENPHvPsPndqCy8NqY(~fuh2%CkLHM=<`ejc8L&RWTV^oR&1wQ9Rg4&h0zUl}KC57X zzNQJf=5iWxFjfsktc@^y`DiQCs@}2%ypV*Dw@K%Z=_hpL`MJGUl?r816=yJBQZjoh z@lJcGTPB`&;ZKO$*SKKnn(icDSw7hUQW*9HcTA4^Pp&GbHaDwlnh}z1ypqb?G&i^w ztYrRlPu+Cn&dEA(=eR2l?@IdoD_i{ULrL|Y`QA2$w&pH|=BEG0nEvlM82?KgVveS^ z#uooas{hf9^KbI;ciJQ-BmRKgZV^m$Qt-V=0f zN0a2hXhf|5q~cW4)tY#>%R1%r zc6474ZJgnWj{^HSrJ}Hm$jD=55l4td)I04b+7s=^kzw~?X*)$}=Kx<>5#?-%JfKN= z*V{=M<5QKZt6I~b;<949ct$#1Qd1)KYwLdzMy!6Cg~jw48~ec!dh*$X#u*^e-x&O) z8{7L;EU}|MpZ2C?W$ep@41zuR@?QM3x5(#n7m}u)-!JGmR>x>Op!pc2F+Vvux}n6> z`@@u9zo>9@yS^?j92GDi*f~(lus7wW*7oF>Ese}l=oC^Rj(~3BNkc64X8Q7i8I~xD zD7$jCvO>4%40oEoGcgX0=#?bdr>zY-ELTsF>uH{B*HdmZ+;&Z3#nFodbxXhX=(%~- zmqaA@@RTO{4hCEo)1f?I=aVgio{t{38920Bp8zA}K>^XI=#Iz(^WF8;xqbH=NAQ#6c$Au+_B$;VTJ$PSKeqSjmi@go*c~su$OU9(shD5-N(ENvy@Xij{X9 z)P@EWEVF$n7YEC{%cj!X7rGK+8v7W%{u%+rt-wfd&ICJxGyD>BSiq;URP1+cH}dS& zN=;QMH*MB(tjw&SveZKIt03}~Yc~&Rm{J<5)`SYk@3&x48nZdW?w{AX=)cf^tt_|M z#ZAIFkc$9`@5plZ7n!fj%OVPEZe}W#%aS4c9L$zvzTk0coEU8ZvUO~FryVy&PkrA!z&;d?{HUp1OSq(H+l1=> z=1m!JwH+F#@Ckb0TlXU)+m<=`jJHk`k%o|_q<`))_~TpG%7!>3psfVkqSmpmYF$^_ zH3;357)2Y$I$UR5d`n^94tOOM42JnkS-3=Z4z&10Ah|5UbF+9TVu^dJ_ltPk%rFab#;=lm=kY&SbJ_n(nN8Hz+{V($f`CF*nexAoN=IQuw$lDtiSz%d zB?bTcg#WpO8k4AKx50ooy8A(CyAQ^~Nx3O)8my9k9@?A?J+P#fLY0KmuWcm$40PU_ zmm{FKdy=Lz!=Lx_!vC^onK?z!uLGT4K*XW|t$HOIP@h7o_hgWGs?{G<9zTdGSv@Dw zyvGNTp$o`xs@J94;+XogHu_vN50O#iFt_`HoK-b}#uP?y7eIPg)F!ojcRdd!u`}JcIUu;Kq-kACxo=tI)bqJR5n+X>b*QGV&tW)s-o4AF--1 z*%jjJ$qMj=t2kXWMu{+vpQ>#$Afv9h&1qP~b&tz9kA;|Hj#A*MT~{dRCCns$5T!qO z*D*cQoK@;bwQIc!Z78g$3tb@=e;wQ)ap>YXYs=T9H;4uorCRD#0S(WNEt&VeH@CB` zsdf`XvEI#=a-4thyc*jZlMgfM1ExR1fD_GgL!P53jQH52-}x(hw+}((>}*o`RpRqM zs1=z0JBs)(s4vHOh@Rk|8gL2{0O0v=asB6nm!hiskMK}^ZtL2D($tcm3N9y<2xI;@ zS1l!1mMpSe56jZ+u{IEI65idq;qn15k73X|O!1!Peq@k&_rlf@3~AW630W!%4;+)6 zqWlwpyK<;64mIQ(k4PY$!ejYzFs%Gh8IhELa1e&c&J~!9j0KyAmmoD}q$0ASRnfqQ zq9qv-*qBgmjH>MlL9t%O#w#|nT?Om{lX_GQ$8`Nf8$3qkjmEkDbyGe@n_}R-;tmSv zpNCJ<7%eGzsm-wca9zuz)bushR@DAD!JmW>Vb|@jxIxJ_kr@bPg~pg9U>n`g?GeJ?F{6xRmB)}>s*DVfky2N>+U|ec;6}5ri}0BQV}3J% zz1|)o_RuWbJJNBduRx?}xB62aVQGdgP*>dFr%{#s4vjMhQ8giaN_%`BdQTZg#A23B zJ`RjLY#hD69UG*36b9FbugO@HX~)`DHQZ5P%`wA)c>2M zB&%V;pv<VE|a8gIQMqYY%5*pybXMFJBECb1(}N7KZAj)w7m>c z9ca1Ud!wGmykWAcVGCJ0BQ80-qDQ+Oxe+J-E7jWb;RMM4mb)TyGmi;@$DBXaBq+}kHn=_8sS~qn;Q}@Nq zQZQMN+Po*`T)v2u^+9ES-j`?qHVQiy>(~0ap2@F;5+7c;mUF&c2)RkQ^?+}n|M%{! z;*^jw4-NnrK?DHs|NXzx()b^1!QR&VKPsWG)xNkFuRr{>i`!sILW7l5P!q|fLpP0u z5{`sV3Q7~hl+wdwOOo-#7J@Z%7ikB!r-x1ovXrd$Ky0RYtx_HNIr`JbygAj;KG=n^Ji6vH1K zoIox3Pa)8PoD1`lih@YX>H{jMjf%mYb?5++EP#L~IKUrTwF3aC)dKD_p#ZEMg8+DH z%a1vb0W3MZ*|_o~Aye^17rm`EV+K3Xs}uH1Dy~bPyDfu^asgZuvG@=^4?G~@9s2lg z*yJ;YJAZ|Ee9)_WAqR>r0&PS+(S3mLl&K0n1FfAWg+?TMt?!$j$!jZGZXE!FdLpjp zbiE*Y12=-#pLC#_3#PE?AVSMQp)7{&1p!LsiQMlc&O4K+nff5*-2ST=84a!jGVFV( zeJgF@QpfK33H7cTY2xq*c(Yp|$m_;eFEiTlM@d6-?-P#o4t+kGqIJ zCcP;raMm{WDsk1Np@DEDIi!-WZ3$ky;ul%;eAK+-)L$g zju!fgVlU|5-)J5UdX%L5e$cf2p?4HyH@0En)ZBT3_lfxo?LDLRnA#g}UN@l^=5l)<=-fhcG3Fy!=p={xvF`rcaZsO?ef4Ds+=&oj(+(r)&Zer9x@0Z(}-h+p=q;xhy;pX!ogoGehClCd-Eij3d4{%heb^F=!y?E71-G;*Z5TiGp>~Bx|HI`H zG%81m0d7RCE=y1R>2Z}X!y`iO*XdK50nG%h>PUtNJHzdFzB5x0n{V0N&MUNn3(p_h zAkdT zT?_Ak9J23W2k-mZ4y4n>4?nDq?mWo)+8H9h<-qyHolSO4GYtGTzy@ zO=EEw>j$H@O+n(KufaQPrBJ60r&&cwIh`zR) z8E3g{-8m*!B9Y8`i(T$F_Yjy1_8(j;w4ze&mvv-z-Sk53+gN1Z^-Hju$`OeVng)E8@4 zNH*jW`(i+moJ=VZk2v+9T{dB>(h$uBE zsJlwC;d3e8T2PG^a8>QPGJhDx(2pi-dB(sz zXs;*Q5pupHo>LLTK7ONi(S=iDL(R-vl~>b)b67hHN^_8#;^7FG-S4zB25**g?M6ea zmPWR^Hnzo!f;^EUFT(>neUAMrY4u}uohPc*8%>&DW_r|o&Db9|SJ#%j*B5+0RXY{i z@tGr*Hx@eMD|bAzlSkBCB{;7^*+nG#Np}u1B+V-DA)M#F-l#3-@c3;gTck%|_yyIAKBg*0YhtbFL3gfn1Y9g7htA+Dj^pwK~ z?Bm6#lnF~C%eY7CugIbay^DppsJaLhmTp_ZazDB;Jh0)EkQB5+6rV-^+~`vgXe+2< z9XIH>8@_ zvAwjdnX0mg8Hk+KgG2lZ^HfpEJ?G^=n3dIRwhl){d0MTdL8D=T_5oe(2ez04?~kR= zUr;!}EY|G(He?L=EdEk0h5kDp8qsNKgtb2JIPj)( zb7;kQK3|i{^@AeM zu1M2sy+g!~Y2O`mq{Y38rawAio1FH#5=h4T;Q=+`2OgcK5BWyiY4~*<7_rF zG=D#}D|9>lVu|`1o z{{xfb<4kPw=L1!oQd2_40TK0b#Xyd5v9yqeWD`Jo75!!QdxE0;@)0b&c(B(X!GZqp z!#CbG8^gg&@|AesKmwpJR;rjFNW;iB`Kfkj)9FU;oWt{6f09738s6b}Z0tfWBSCMg zC7jP(pRZ^r{%P6qhpo14{%bF(2g+)SQJ_?P7!oDV(F0>&!OIVwGG&8Yu zjI)=lvP@I>m z1{`UjpgsmZ=!s3yO>gn4qt=q_K8KG5zm+fyh~f?w>eoKfmsT3U>FgRx{ya}P8#YoI z2|-1kG!XNs5j=B1uW?nXi?PSxV#fUCu~s%7fo1AL>*A~oq4aM#ru@Y&A*s-AD}@Ed z9Az*D-r-v<-HIE=mg0(vz-R}pzIy(JDM-TI)|iqo{nYZ8ZQzb%4{JsC%{+5VejDIp z5jVUqj(UV|x`4b!Xx;$wg=_W>(l+CQt%E|im~u{Gwb^w;=`klNuMQhmEX(Seu_rAssthV6(p#~jfqiBKE)s@>)#kQsxH`zh~+58`$q1J>y zF2p%!Xq25g0?L^?%{ν?GtMNq6bIjJ(!Ygb$jjvn&P9A2jaN9ij)$e?~#4DnraC zr&AK8u>LQXxC^M`OR8fA0=Q%nJZIAyk|YXs3~~Sujz!qDHvvg4t~vU)YS+4)x3+9b zM^kyuAuZsl(Bm^1#S+g#uO`=*JWvXG->2QM)fc!HP<{6&p3%Ns;<$jbhf&0i<0 z^nUIuTSW{xqLdD+jzz4Kht{MAbzK_V3dhO@qeqL60=&%@^r@BMTB&jp@}*zr9ETP# zIR-&8@rzW9e$*T+h={p^@eA!9C8jH6v((Z{OkJ-fb$xV`e1s{UQkrhmCk{(3K|KV_ z)XFag;c^GU1G~wBIxZpwrRQHcWtJG%najrUH<_%HvfEAKs;RTA&!V}uHz(v?`7h59Fs;tM3QhfkX;Kl;EL|FPN)z{FnF5jBydX@NNC zcyJPzd4*r{li9Zvzo+z_&ZyddNffT@b;G2u~W8pfM zKRsA_lDTs`xBHf{Bl}jy?uQa~JB{yG#O_<;#PKFc_0`$G@xPU{Ba(JX+Wms`;}N~x zq!D5fy?tctIj~3M?0CGt;QY7^VmIf#$iAFin<9vmolOxxrTpC5yiHo`EzB!J<8}LenZ(VoA}@J#P;xD|BCmQW&A7beunYx$d3LO z?CzxVuR8GaILqwOT`v1?;`}$4=U4FW>i2p)yVVQI{b%_97X$G@_Er8pz535Ge_XwH%aqdI f7xK5YoJiVP%YT>-$qwywmyUR)67R|&J5T=uP=f-g diff --git a/service.betaseries.com/service.betaseries.com-1.0.13.zip b/service.betaseries.com/service.betaseries.com-1.0.13.zip index 944eb7e75e00fc1fccaa9e47279925481c57a41c..fc52ba33a349ba456c29773d7ec133d558e2ee09 100644 GIT binary patch delta 9998 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 delta 9793 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 diff --git a/service.betaseries.com/service.betaseries.com-1.0.5.zip b/service.betaseries.com/service.betaseries.com-1.0.5.zip deleted file mode 100644 index b82e08620e257e899f11349d3b8517732fe212d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20242 zcmbTd1CTFYvnBd#+kM)$&C|AR+qP|6r)|6Yv~AnAZO{L^^J3n_oB8I=y*r|I?TU(8 z8IiHFGIB+xyc7s1G~i!rwkbp8KMw!Th7Q01IGH%QS{Rwo8Jaj7{ByQ2aiTM_v!Pc} zh5~@B24yM#>vD020RVwM0RaG@sQ-K_{}155?vQ|ye*k^4JS9K>dG!hc01*6pKm%iA zJ6k$;8|(i-9{vXvG~jiu#4kP*>@x3Qd^}MoNt~Yo`)41YMY?Za{%$hVjq-^GEh(MCr9&0DCRWa7Yb2 z+f9pfPVX9Q&tkUK=;^ZH@ii-Xg#S*YT>8X2xZZZim3jen3sK7~4kvBMFoSE?3^o6* zA}Yjz$$|#>Yw;CB_VB@waZJirxoc2II5R2FX?(c+dyx~QT2=Qo-%yPCG}OU9C$V{h zf@>|u4GR-S$da-^pV(J?IG)lxp%$37@&;m~XGrCyBd>s&|n$95tJ;L)4sy|GW&W{i=^N_r|rF1vr8aEudQ@( zRGpg0QbCa3aAE#Bpw2%VS~hlnXT^=3l+W-jn6|||2!aWVqVqdoB>G{v!<}E>^4O2JN$+O zMJ1_B%-3QUmdicuwaM>vaIpU_=;}lEM`}w{y-}q#RfE6Xus0$&zReQLWg)9CUSD2z znz@SGCXEDZ&w$9%H5jMPh4&t@7)9S2|JhlH<{^(NBEXB082(O{r-6b;OpUEPsj zLMHWP(6P25Cc~gL%rzm&Wln6Q*(b?}#IN1%CazVVWWq{}GDHT)^FVQ@IgXZ>Rm9nI zI!=n{54O@J!c~iezh?qkWI;%Lj^&oF)XwbaBo(&YjOB`@ zrHR?q?(jj}dgt`gbQmFPAQl?{S_5*Uhu?sMi5;@CwefmFMa1Z3cd~SQ#B6nQbbEN( z+KK3A=*N)SINCdTd3;}vPZPB}J32Xfemji)5*kk*tP|{3$|s4>n{mVn-bC#6lBb2h z63U%C!v*=}MbiobO?j8-T(9dPIc$JD1KM%eLq8pxi$W(syg*=l`1-m3b+(~KM_8(a zOx`AR-3XATkXx=?C!F#9O<HBT9e<1<4p#VzY`hk z6<4NP3}a-_g~UfS(o2uz339lSWZFgq zUvvHSCeQ?i0N@93J$KTw9>hzBxO?1DJF%mukF~h~IU^KL_3RRw-*AH9340_0511bb zC`2VHBG=yW8FCDtq6A4Z#_3apcK8Fb8m6l$gOiw_2pQ$|6EL}k(hgw| z$@6~LLb&E5sSfGT5r$N(Rx>{akH)*7XZV72lb?!|N&MzOV&F*ryj#yw%ORTb!i{u6 z2#LaACb*znc=go5RzWd}0XmlcIGyN605zWt;>K@HAE7w=D|q0fzu58{!k0{pwcD{b znw_E5C|U&xnCzX$!j+k&gC;nd-{uuf;g=tvqu)Lm*A|7|DE^GlV~Q|cC>m|x94lK0 z-00=$>1k-miqrZ9+scRnpJC|@h-3h#scK8HcZ?Hcr3g~ck0#8fIYpE*TT+P{oIIk3 zLapPr7)P$}GzFOYHi40WCWjjC)8^8P(yWNv{tQv!;)y^?;gzI78ro1f!k$WDa!cqc zU!fiFJBJxsB+~}h!<;Eqh(_~m4<4&^=|=k&KCmx|7#6(FoW?K+67HbBgajzYkONTz z&qlT)S~_Y~=#o@Zx#17CU>}-{w`ZCE#&!o>Y$}=hrZRGXopKP|D3w-dCn9q_62ByE zn+wGm8S4he7}G7O>uOBMS-4J2d)WZ=Cc(5n(8v8%HxLPq@Z3~y`5v=!#h^4#>-$>-tFo3Y1J)7So z-#X?E9P1Mj5|1fWup3){n7XC*;D#))q>omsEP=2d{&WVyncwFoEy$-53>vzEzkd2a z{eGi*)5)u^(MeOkp1SXKO;3-^de?s!7 zIblV^P`$^h9lT|N8aVWAZUq}vgtbe;fnTR)90V>x0Rg2Mu)VEQI+y?9Us~kx&fKIR zcFt3W%n7#+Lf>tL#|z3o;E)%CQXL_X$frbn=7iHaV^76M+S3&d_HV%dzfn}8)Yf!qsQ0@j; zAfWXWAqL|z&Hgk$aTeophKg{6+TsdH$w&r-M#a+!pV|M7Pn&`)G%_8FGO8=9d1vkH zQ;yrY#EU+!7>LsdFp>ZYHQWdx6<1!{@*Twe>aokgIy{4K^mHL>cp;p;893W54FZ}T zebDHsjYCM~;MM;^oXmqaQTJ$Z5**8o4u?0e=r!;ds`0oD*r%2h0H_le`n0}|T&o4H zlJQrkpl~3&!(y{5InLyr4?v5r5-bu&YS@I8DCt)$2!2{Dvi#uO=k$liK!M;sWL7XR z@?6XgyV`g-q48CdmVC>gFe0rLhwWPkk5}&4-3G*3NR|<%d5uHS=e-{+5NVqlZgJ=P z8TRbu9B+4`^3Bw%ka?cdk!9KBq;+(&k& z=wwqIuG>|C{gMTZf}DoiSWv2J3rY7fG(?@iu)OMZ<<>{hd@NQta91!IDlTM&KQ4wJ znDubK(W6%9+D_A+iI`*4oqDT_lJ=0Yv|`HWG}YrckQzbh>Xs<~=wt2aAF?p?&c=jb z{cSIGe2x#|SEa5NNef8%lavXr4@LOZzJGj*?6?~hPQjzg$D!_AC3!`!Y?uK_37)6O@zWO&SjdpqQ z&gep)ev6b8QG=fx56>60XQFVBvkQFS?JggIW7EMnGiuQ7@aL;{8C1`yb{X`(<_ejneFo$+ zQ?OBu*MLqZC^1Q-mcChtqi}Ey*WI-(tCYWkuS8kfxS{j%JMg0wkgaYleMK@uG^P(KBd1AjtkUN^B)#L z)3J#yEkP7*uNzjtev)(46Cnc?>Am%w6E~k@9R3Y0zhiu=Y!)iqNqZzCvyW;}*UeHp zWgc;#=zQ6#Jvyi~KCLl!g<;Bx`&lK$l|JrctI6#&@X@6)WB6|Zy%~_oTmm`fP&Vwl{3HLy#uBB2UTzSlGf`mIn zm0mTJTEuf+Iy}&X=MirRX|M*Hr7L8#-Eu}|*vEz-UN1#N;(QYYj`rxK7K<6WQ@yGc zv|CP>pNx89%=?I+d-Bag)Qu1gOMTWt12T9t61rV*7v>-@CN-gRZYWN3puTDEmunJQ zq>orPA}qbOJl^#qGG)SyUyOFNcPJRoImRRXn^4acXil)FYpnKUDN)1J1|SV*Crd+UIWtwDmgX z8a*x!xX6xXq(-sH4qPHynW3zh6}JD9!PLst;#On-dbk&zM2W+^$OFfk%|NH@4>R>( zroi*x?UP>)Z{^DHPQv-Tq&@_;2!x}BbnpiMvDxnVkdgWI+Fi#Q-K`N}ST3S}HJ3b1 z-UQ>kXt{MfX2~uy@xe=dlL=m*Rv$hTGhI73%=+HV2R~L*|97Hmsf#aJGa)Jsa9eI0 z(t&mc+u4)QHSNC@3AOPW4x1mT#a|F1%UwIl6#rLmSE+5P1OF^*8JhrDfVp_fjHOy0 z1bw?7#lbI!bjTXM1~0W`?AlztZn=Kk+Rez1a12X`kLRO}cyY1)a0VP36kN&Ss>TcE z1kb}7mSvEVGu7>VFfR4nB&xfi48J3u^~$xw`g=H3%kiu1k1s&5wZU_{qUUmtHH^Dt zEqY+(V8g4EiFRvnmkr;O*}czEfzO7pepB7C7i+1n!c$?{M8xL`LTo$iJwUC+@D_GBcir z_xwot>C*zF_SYc|a!c-E!?hC}VEhalD(-2BNQH8FzRh!q$7!_}M2(bnpO7TrDB=O< zsLj(pFSvC)$(eF^`5l<=c4T6jWQ(c85;ww$n>!oDj(#h6FrK0A=TR5V!F@M4@&!aiM&A?U;Ad zZ+FcPUW9s?;}4$)IE>~9&$C%9*4vMy-XHA@ogW9VOxLI?f%0_Wsul`uUtD>TS`yHtpus#-7{V=Uyt0|Xp{t6#i&d<57w55> zFnIfLEKB6C(ha+Z%$`Jq1S`e}-yxXtd{dz?eB}~JnkrdfiHm!FQ*}4P=R1-=z*gv0 zEBw;*fL^kD|IEb^iXkrWyo|t~NOT;l6r$y*bfWhrw!n^3_7>Zm2xQp_+_eJnJBPES z@bEft5Ds$ZzCP1AETjkS^bUGJN;B6dr_j%=wH}|cvIByCsqJB=@xL`;ZT-ameVr^$e=j`tMA7aq#KQbf5|0)Kl#0kU>5WtGO zBshlo`8QdXEP!zC7THD!43#mr;CF_L>I4jW&6x7)O}9935N=Aaht5xl^`yQ?X!Y#BXh{2H zda>*w^Ihb%oT(?}U8OfudkZj4QUT6z7VY=5aW%BaRMIA==;7Pb{!D+jO+Z3U`s+A~ zo+dIBtoWniSLO5gKerwsf=#_E% zMP=8;&zH;bP&O%pimZrw)_Ca zvP7=;V(0A%)IWM4WnBI%7#a1h{nG5asJ+Xr;gU!0c?or{>TJBq+={1gvF1RT3#66M ztf4h^tl_;E{og&D>t)KF!X?`_NPAjbgg5wb1A^Z!WAhQ$ zRhL0fpN`mQq>r4M)C~#Ic zb}MkzB;}N^$R`ZL%r92aNW{U5JJ%4IG&5`=Lr^Z&UXt$IKnsyMn>bK~tlTS#k!h+> zlyo5_O63vEDKcz*&|b{>z3{#x`mQxJ5Jw7pMX=}f?yoft2Rw??eLrYg|586!roXZ^ zlqbewWFlcD9Hj_QOZ8Eu(2PGceh^%VMnX9sAY8`Gf0hf|&%eDUw7=_`$=F_4HiUaR z@EP}q(-yP)Y_2W#72cxMg-#Rpb(!%GH}6ph^rD}yTDs=H3+b?RUd$}upu`Trsy)5S zgzuo?Jv310wO_m-(u!Ft1?b=mTm}!vNw&#!^{Z^pOXvyGUfU7IQ9uAi?X|t`ND4Im413;jsZ_;Fo;j)vivgyE|2Ph zVvHMGx^`T~&Nbket0yHXHk^yd5wKh{%?CEiZFvBB4_SeZ%nm)}q zt;%qQFgwG|cb+p-5Swr5?Di|PybJeV+odM1FUL@^k=(QqpsEgmV zh~^m1W^L1X8nzB~9F?`dLq*DAG^BRZu5`@31G34!ha9}`Yub@c3fg#o9SFAC%dx9x zZzzk}wR@UxRkd#bL+niIi7QU+bV_??-87EI9rN_wcq?8hEuiNQ+Q2!K9%zDCkW_(< zG90-MoV7l?6#~os@S_=6 zyXV*PlIpt|jFschzkjiRy!9py!CtPDq-DU!XNKMBM_6TX&=T=DSxC!*qM0`Pr}JLf z@vYB+)zO|tZfh6=^SW2ZeLnv{FG{D$Y}r7q?>yF*N>;e$Ldwl~m3NtaBUNd4dvV*V zR;AKr)*g+K7hK?MHMoHyWWSz-_GYn0`zdwN4k2N_f#qOj(d(%ryp@sNmAv`12_rF zW{BwZg(9j41)b?CGUh7#B8yGJ;(UmLl(#K_&L;XTC!~NU)u-3H>2H0Zm_Oyb9|dKs z>#q)Bt!9(lx)83;fPB8mPr++TmZD-em=Aa_2bS;%xns5I?{Mf@@YoU;Bfu=|$e!6C z+m_wY7PmE=eOvkvZ)&3Xs9aF>$(rE#cRjvB=6vm!>`6*?*eLxg+Gs>WM|CmQk9o`p z9X9miOTV5ZVf$wIwg+Qgxtal7HsNiSFP^=*7}KlB`Zk)ElzvZ6JN@X3@5&MLHP0IOzQfyIeYSkmhdi%+h00u& z`b*2Ui*lHHv=}3vRE6q?u4d?CHM<(3V{4P$G-IqHP`7i^2a9y9u*4aWnUl#q+q`w?SqS_8>NQZ@tLANN@ zB{d-(Rwk0$Ft~vV7Jjo3x|+eS&5Ob*>t(73&Y5&m5+1gKxrpQr@+E#z+^LPXmU%!M zu2dWx<}ZXxD?|X8?{DVNd4^z>neFKD7CKexmMARN5!DrId?!MMu(WXd-)1@mOe z@{ljQ=a}HZ4)_oK&`9EkSb89a5P?9p+Xxks(b7SZ;3@*g&IzT_tzERDJWty8<1(x?C1sD286nqvhA8LwlRqK3av0!V4&d^;$;{qdhCK!0 zBSMkhgR`@aeowVJV0#KM_f9V*)ZsP#F`GrO%<7X0_c>-YS_;-7IQWIlB@rfMUsMoz z0Gu$u*+hjK!&n?Sn5P3=(ut^o<3&kN#+86UawqM({%L~<8#m@>_P!bMi>u=>dGd+Dg+QFEplf=keYh4fcmNYJsLx*uS(jmk@=^EAa2}Z zGGwgdcYSeiUxO3!jC#}(i*~ulx;aKGgQ=%Sd#P}~Tw1RhTs1d`Pc25QNVA9*8AL6u zb|-e)WH`T1O^h(@x>+0YWtG@wee%n;CD+W8t{njNP~K>6)2UA z`u4&|vdjtGrAjX|tA{2LMo=%wAT1XE4aIYCje^Lp7OZgE>PVFBPb61k^z5em4Wc~s z%sPuYuO?r5t+F$YO+@hk1OCc{i5!KvjC&lysMrTR;r>)#tA*R*giNw&H#*1ru4Tl; z%S)APBe^(0c5^J7@o#$!Fi}O{jzfv;^e9}PZvzP|6MS5Bb(M^4= zCi{ke;nHVODrI5A6T>K2S>L5+tj<>K+~+fTQP$z0Yl~BbjZmId!Rw3Chb(XE#C_Vg z##g=9Z6z&oAqQMRc9PrwLVI$P=1?luLW9ItdBuQs zm>d~`-6dP%JfqTQxY%$Pe%@>Jm+Bf+Yes1Uk?Q)fU+%agQvc|*Ae(h9r0$-u7ACW~ zD`hnlpFPX_qIfWexn4o75;zzu!D?!l3dq3FHeg()$63PEXt-no+WV@nb-Vo4xdWJM zsSNs4H`WDbjxA7ha=;dzieb3r&LV4nCD!Y6{;X&3hc7I*1u%Q`YeKBC+~3f>)tzhQ zcZlxK|EKON3!m^ULjwSuxc~s7e_!`WO9+X`DvA7$BKY5we$`q!ZX2SBJ~_M}#P6r1 z^PCJQoLpQlgVbV`1g_<52b_cT-ziyQA~-xv;qvM}J>yv?5>D)H|1a5b{Hjlb|+N8~qZ{NULp z5$U2@<)Vu6R#4@Vcyg2}0Ratd2*;yBwnpa&l5+Ys>@KNVJ1%M0*Y;Nz{ZY@-`Y&DZ z!0)$6gq_5$?KGKURe5bq+cWHry^}ufM!?>Az%skntscAsr zQVgqbl*{KwPR1g<2;v9Akh({2^49fAAqf!Lk<=GoQZ zO}-PC$5fVafizM{UC0R~n#gCUspaYhRzd2ODSk+@QTRb>XP77DJa&T@_PlU-Y5k-~ zl+Fg*!FshX2>Zf0n=1w0R%a!ob4|jSo`0>gJtS(EO*N!W?WY^9Q~E*Mt6(iGC3KBL zxRdKg6~WAkABD$Rz{1+Ogei~?4(FdMy;TxbsGv6^!IDeCE$MC^Wd+1HxXUwM=apT6 z1MUXl^-QB^X3i&%2n%SiRLE(uESZR6v))@w{#1|pX#9G4?e~_VkP`cjNIJA`+&mqu z#A#p0faVIxJ&z_m&dOH<4}Q%8_t4Mg{0VY1CQ#w$Oji3%Tc=AI&GL56Ul6^+V{g{k zZ~}eYZUxO*^EBgE$;TN~9x}MCty0`(K^-_wPV2q7h^g7p zUs%7qtbMRg1gSjvW8)w?&Z;?JMJ}}fd@(I2|OOS7~3p=Gl|YB88LPH*9fkUj#75Wj)LtG z?7gNbWp1vbYn8AeD#H!DGA2@11VvYM7KyNG(VA5%+h8&sdY1TMJlYJwK8($7rc^9j zjZkJR?6)W;6KlmmFR9EcXdBGr7 zyOX;|hmx=ZE*~z;otWdoG53-ia;4ALMcKj{)GZ4e? zQXt||CHb*7Vrpz;$XE~R%33;RM5f@iDoJrxWiL0-qBXrS%J!y4N+&8hwlyyE4lv-5 z<&MsTijr!+0-?Ahxq+yFvafxK*A9Ruo4j@rMq|^ZlLn+Q!8PYiA342xvIx=KB)ONR zrIq|i)0q0D+oAB zf+K7b52ytH8;>*Qg_5mSrqVbr37?kqQTP;@M$$MPA0aalQdQo5nNI+`@oo1cHt>zJ z@LGH=$b5S(%n@xNeg6VIq{ndbxQ?-Xq|`iWp8vq$Im}`#4CpxG*_R4H@a$2t_gq{1 zG1!uGZkOfHk~Y#)LLsH!J?VVj8qynMYZeOnA$Q;1 z62A|Uf1wt6C05{u@Wec2_jQwCNpXUtJr5#c(&bM|=#mku*f9k5J_eH=WDOLX8JO58 zno1rJqR=hjR3`inmEshg7MqEY6DKZbm=mWrdhR8~tb#rPs1fLh@oVxq(Ub`u`5=>A z18oy}1YE_XAGYO?rX2O13LTE~AdAQsUaJ@PLa0^<|FC zP(o$#ektMX;o`PjFkRmTO0n^AaEIy`u!C1W{T>!zQ_E;jLKxaA@b`D+zJj9T5-ZR| zQT@C?Q@TUSks@!}EG;z}lcGCUnh{p&J=I9l4Wq_RqEm3-3_qod*7V(BdBANw$9|Ac z66$Os+#}dg>!@Qjt>f(tX6oYD!{6co({<88J4UNIHDyregj9#& zgV~AkXq|jY5&Pzo6-~v0@Xqj1uk-Z#^tIg1b}Bb8K0rN&+EB`wB>Oz~;Q7=)jVV^o-ZkV7DbLDU3peC&H> zElkS08CjKN)jjtaI_~z&6-@oWue<`-Wz`Nr=&Fd#NuQDa`HlIQ4mt&E1A(vN)*Aj; zagI<}D$$5sn*s=0L8rugg&S+k^;OD}R)wwIL4`~$EHJ>?? z;gOMNxRAZUoW+kFIZIkIK`2B_Y$mEv79k`9SmC9dfzD1?cGpjbh2=*%HwbyGUq zz0nlCW5om6v%@Fw%JKU{44e{n&xvnl=q6ZDyG27}z^TDthV6pb@`_ZAS0z!2FzSCC zkba4pXoea&bz*?6fDTg5>|C%J{N{0BB+^Hn{J|(&*9<8n<|fuc!i?IQ}txbsf(M29EbombXe6+nP>g z(rM65O6AsAc?icTN>K`4BwXGH9mDs9h|r#!iSVU;2n~IwcJBI1N6n&2SL${T^?cPZ zTX6qIzbiXW_QB#pNnW`*vlDh6Mug)iM_Yudgy6TWrw~Jh?l&tvG}CL)WuoNNO(^VI z@LiD+*J^dV*JX<80xwL6IXgNzlpM{H7XZ%(msU2$6-a%%vyAnqVcWW_!lZO8*eYTS z5a=p2l$D0|KmQXyI@B4ru3vVGOG43HLJyCt;0k$p5e%{sFqT+<~%)m?VB4h=4zh4`ERatJT*%Q>4A5+aL8BJcc0~E z0#?q?Br@B`#Oo500Y}pOvx|2gJsPaw?wNYHTO99wtRLO+H|4H3awH6lP+>gTd?R)k z*EgD9ByQX84W@oM7lM9b19-9M>9^%XewySkm*+B#w~KoCGms8s+aukms*YkpMEY(2 zN}yq^jTYw_VSBVw(z>r1xX*peDGxgw;Q~{Fm5`pSns+HZ zhcmLkxE#YLHDz{Pb_3S{8av*ksMvk*UcZ{RGV3OHtnI_AV;$~OQy!c5RpPoUCi?I3 z*||V2L=o5ab0UMx&pt?fm^f2sPfBFu5xu=(GIVo8${0OPs9%=Kq%xIT8(6b3VbaO& zANNY7pw(<(2WZD_Jd&KNIjxXK0#15f6!(?HO^EX3;lG3dTg$DSm|VYKmGY*=IznJY zM04x*-ZRe^SX>V;7~h@en!gc@bJLqnQ}J=NP72&QYr_O(fcj2)s9|*ad87 zHe=dgIa|0`Wcm~(_z(59Q7M9K;hMg0;F;sm#|XrSSx}aDH2pS=v#c zdx6g)%!{CZw^%xk(Rifhc^J38s4-^S-SpcgX*;UnKkBm;<`?y3nXWiopk-NW-9e!? zMlIkT|Izfu+<2~a+!9Bi{ERj*$5Y-I=s;NO%8zBg)6p18bI!C*SYoP}Nosk1-e!#) zxrf9>O-sBkLHBCIIPefb(8q_pq2KbqyNv&m4CQj(YqjnYotE2_Z!tUg14N^vv@keV zi}}Tc?$z%w(fwO~Um)s075CeW;Dy5FFDrbWH^TW(#Gp&-qCF!2^jo>e^W3S@pL_JN zYwR`D1cK`s3D{Vn+~h%L5E zy0&)EUSBvB>(@xDy!V7dHf2!K{Klal`Y~A@(01x#0^CL%2;8+DaL=a1{^=G5eV2P`EU#~%dXko`KvU=&Gz|dT0 zTP>`a9%^cI+n)$s1he;Ip@Y=FuDiNy8*H5Yi=!q9+WL8+Rk$^m4c*YSHi0%gAX@jY zJnmB|-^9eokI%6lWY3$;KX;~z`_&t^Gs!Y^{IagXE-Ke^WS2X4k^+dEK(e=`1aDB6 zv>tG!*7U2Jzoa4?>WY5B;cc|=<;NH+191uqPjhdox2DKBg4-W0b@(Sja!(LYRXKgG z1||}2m8mH=tveuMzj0l{gu>AI#DXino(vxb7Zqcc$g~Rv&NGZB%}ewBy%E_n_se(4Exu{XZ7@+H<;7K2r-ppbMmTL|LJ)jA6@~n!nI|;!S$q}h6WU9V_Oe}`er4Ms7QdXFE+@gGwJo$?9aclhbe3n?q#o^c_C9IL4 zMZa-y&aM}DPrME%*>>ztd=E_$ zWF;0YE%Ko9hdmL>-~e1uN%v6>b;{MC!j^CGWte+P!=c6Z_ELeEu$)P~%qitLFp-_s zQYEKfWYNVzyWuNVl${#^yv&FHDsAu+F5j%8>T{X@hQe;wRwiy!Alp8Sc&!5lPNDxh z85*8$?D+~_>dc|rFT`_UVKeJJ8&*T--D0<|a7O^HAgI27?i=c+U*a3CMZUVD=R)Kb zs0>Z+fXfh?aiJDr{Aw1(`{uU=1l$JI?6z2_#kCxZpZ#W=`&VyIzk)3sScZx=!a8B0 z4SUX3t%W?2QP%@3NCHHf9G9-SiMI|Jrx^Q)?$h~}tUi#UEb&FBdk;47t=Koaw`UJK zaq_s$+VkaOCSSuwJW*dO(|mVBs(0c|hn@?T++*6F^KYCPz18m(5FeBs_*}F49KXn? z1?PK*-`C%Sm279~K;67-El`EG6WEnoY#mh`mZE-<;n*cyTB1lsUYy z$4>Gc9&-bwJ& zvM5VecXGmL3C+=2@WKwX*cJl_CA7boJW48n+VHPWfsXJAM26n!y5sCl3TGJTa|Rh3 zPexYHy#6U4dALsaEJAA;DEEU%PobZ^$gqwus524ZkSJsDv;2NJ(zo*97H@--Gmi}ot!1a?HxiX zi<7LaXa>2HXX=Ptf_OT|725J~UYzMJcAv^I49P@~gu3O5C3_s=gs7*-WXY1n1}+ej zvwa^ajgHLZs_&}ZeD{2p{eb+d73{x{ul}p|>7OpJ|FH=Fy$0@R;$-LIXk_B_-v?R$ zC4v8&LDv60G}ZqNwDmvjW-bP1CjUhnO#dkxBDQAM7Eb2>zqbDSVD7(M74bLF2Jp{N z?lc4d!2Msc<>c&WVQc0@XK(j^>LH6!(UIF=K=nCM(_TlPJq%6mQ$!L&hATkwDZkiu^7fwYlEC)Wi2-Nm7q`dAYbqn$W19AeX7~k# z*OZShBH7O)$LLSp^a<6>5Aw*0ZlFR?0GPC_eGoJ$q1pKU%3IPFE-OEE$=KZ|V66|& zTXKXkYSwBlJH-!8-4eYdw}GE zh@G`o`C!Pc@)NfV4%W04V}Ig3kQprreqFWF^n5_rcnqZ4{} zf4xnHhEVLL%@k)VHZV@!jGR- zwk97+h0FxMyDzf(=Nlkj<1Ohph2mQ1YzZ8%@wV{To>r&%97}@p+{@SPd_=cBOGneR zUP}IGVH5Zhi(Kx>{u9JjlA#0qMFIz2qFKDCw(HNUu0q#tM=95mEa!nyz_`FIks42d zX8;=3401j?qh-w3WGI_)!_qooxG)QcW2P00v{Ks(HwlL3T$e~vke(kLxM45KrBvKE zy{TI4^OO&s;q?Yb_VNq zdg_JqS+2rQSJpDEJvZ^@iKUEf>X&s^o70=e9Jmi$+-!Sq=E-8W*&7TwAv#WJ|{f zYFRv8jtupZ(i_6R|3R_;SE7!9LPd%4KN035u)>>Z|1`$t0RsR6|8;}^m$9CxV7JbI zII{CWX}br;!b!OyWfH8McNW@|4Bfw|nnIO?)2C%9_6&5^lAF!1uydTIJ52pidh*J)ek09$Mv6B%m&ZRQE|g@kFyPs4RW}RibKEylIygB0~p|;Z&zXx5+X2 zcXi~sa1J7)&|!Ax1v#^F9E~ZA;5LBtps-iKkAawNX3dU8)pCd{zy|K40;h3M6WcI? zZ@T28zd_jvQTFN19cP;@lM1GpQuEm%p&>&+pa!`E&X)Eg{v@CI7*2y zhM%fs-7l@Cu*GRm`1>B0aSjVH+YBY&Q>(T>z)OfpZa+$I;I@5gx+$~7k!r_k1=>JJ zK?k~AH2x~MUi`qtbH-f9a|#zeRpi^6BY>(yRFA{~<>*{-+or>S$tX^q%U^^|BiOmsvC;fVu(I3YR-c}myXrJ_V%NSMZgXAWextoYbizd zOqWeX^=@X%P6@)@WO2)Grz7)?D+!0I+`;InYdO57A6eH&0N)-A1cPX828@D#l8uSu z@hYqVm7=#R;3SJ0YK3M1gKoCLYY`Z3wl+k39nfdQaHMe)&@YX&+}XWkNyuRd{r;G~ zf39I_8YonHfFHf|T`nYm&sabAD~>mhO>nH0ME#J#Pa?8yK-&U4=IiOSe@dD~fsw(m zOPda&rv|T~sPwTaysIliSSV&vvE&r4QMnJl@S(%p8>NdgY{z#0ZfSzgu0~A7-Z>1$ zAP4y)786^BC5g;L^(@lFhaXcvkfu^_!d3K}BvdMfDP!QFt=VJq2IVB@X=M;qtxMSC ztMfA8?8HY;YA|yCqnYZf{JMt%Ij(lN@UKkJwt>TMWs(9C$2d+EeFu{dkMUsc5aa14 z0k3CYN6c*N5l>*H#W``ZNEptjy+eUj+IL22m$i~bi&W7xNi#C=40OLgjfF}S_%k_D zuVCQxvOZ1d?Df?DZQOI4!`r`HUYT0oEu^_4^#9v5UGvwEGM-;r{p`|SZy}SkSC_sB z1|791`mxa0a0yfTY|{;_Y6%);pO60dZvC?^=hIyEFddJV2d>36-8z>0OzA>D+qL&) z>)tfVm@6bNvu8BkAh1JapO?`0r!uNKGku?x7==o`xzj(}Ol-{wri5L8ZVDPWrf_h( zf6zPHVK`jV`-eW(u99ipqPc2{=VA>CckA1>g8TIhw)5n;GA##TerM=P`5j%YJcSQiC0#X zZi*~^H7nC9^P50@p1}R*cXl6&NaNfnpsg%qBGEX(Nz7TkVe!@_2cOCRSg|5^zU*X~ zOL=FRCtNveF=AJ6k@Ud;ACD$=la zNh8zbj4#ZhWy`*KzR2lP-*&WWneBTUwY7q|4ZAn-{#)(-Y++PhK4Bu-J>;f7Yih)A+7O32b>gckfj*i+^ru?^MH;C|(H+`x+gdKNXncy>A>RB!cEaQJA&-uq>%TRPyA2FFO1FZ}9m`({i0U3aSk5=$AZYa$!hEyL*hz85np^HWHNCu`k@BGA?EQYf)ziY5 z<2Lr|Pnv!BY03@B+6(83R>XNHWLT?jwJnnH(9KF{Y?*q`lbn&Zw$U>r$>2!ipN4=x zt9cmzo>ka$VeZDc64w)5vXdn0>~vR6U;T5AL$#oj&|TGwPxVj5_}g38Tn}30D-w84 z;``KD`&Y?5-><#()VKS5&y;uGu;O07`Ge;VlRsvSQw<(E-b;CU@Y$PHXKvqKvvv#r zl$`3x%gZBgSzXHV*|zu0yIu1x_!e5vtq44N-?J82=`b?MF+=)Km?sNKK)Y!I3~wDl zOq}Nou|m!n!Z>3HWH_!7k0PJ56C14y?<3&k2K;MzMJv4gM% zX<&eK`;1WRt0T!i#2^7advOgBAV=FPvg}1}&Eaza_6Rjc@p*zhDIpE@Ijr-9&vJzK zQM*pa-oHq`<&=eiAxaoL1{R&fr#5)&ojBj4w%w6^?*}||i)3qw^*18;QLAWV2fT12 Z!U3oiHZDK2vVm$Jejr=|WJP#@cmNVHe-Z!y diff --git a/service.betaseries.com/service.betaseries.com-1.0.6.zip b/service.betaseries.com/service.betaseries.com-1.0.6.zip deleted file mode 100644 index 34f8999c4703d3dd37ead45e8a7908b9331dd883..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20551 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 PHTRt<#O+qIod5PWX1OA2 diff --git a/service.betaseries.com/service.betaseries.com-1.0.9.zip b/service.betaseries.com/service.betaseries.com-1.0.9.zip deleted file mode 100644 index 31cbad7026a398bdb004f03060593500e35c3175..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21803 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 From b85fed9d9db770f4c3bea929ba1da965ecdfbd17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Physiologie=20des=20Cellules=20Cardiaques=20et=20Vasculair?= =?UTF-8?q?es=20-=20Universit=C3=A9=20de=20Tours?= Date: Mon, 23 Mar 2020 23:46:25 +0100 Subject: [PATCH 07/18] Kodi 18 compatibility & bi-directional synchronisation --- service.betaseries.com/betaseries.py | 7 ++++--- .../service.betaseries.com-1.0.13.zip | Bin 22703 -> 22722 bytes 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/service.betaseries.com/betaseries.py b/service.betaseries.com/betaseries.py index cd3edd8..3e6c87a 100644 --- a/service.betaseries.com/betaseries.py +++ b/service.betaseries.com/betaseries.py @@ -426,7 +426,7 @@ def ScanBSMarkedEpisode (self): # si pas vu, regarder sur BS si marque episode = self._get_episode_info( episode['episodeid'], -1, self.Play) if episode and type(episode) is list: - if episode[7] != 1 and episode[8]: + if episode[7] < 1 and episode[8]: if not self.service[6]: # Verifie si connecte; [0] = episode vide self.action([0], self.service) @@ -548,7 +548,7 @@ def _get_episode_info( self, episodeid, playcount, playstatus): tvdbid_query = get_urldata(url + urldata, '', "GET") tvdbid_query = json.loads(tvdbid_query) follow = tvdbid_query['show']['in_account'] - logstr += ('follow status: %s' % ( str(tvdbid_query['show']['in_account']) )) + logstr += (' follow status: %s' % ( str(follow) )) except: log(logstr , xbmc.LOGNOTICE) log("could not get follow tvshow's status for " + showtitle, xbmc.LOGERROR) @@ -570,7 +570,7 @@ def _get_episode_info( self, episodeid, playcount, playstatus): return False seen=False dl=False - if tvshow['playcount'] != 1: + if tvshow['playcount'] < 1: url = self.service[1] + '/episodes/display' urldata = '?v=2.2&key=' + self.service[2] + '&token=' + self.service[6] + '&thetvdb_id=' + str(tvdbepid) try: @@ -578,6 +578,7 @@ def _get_episode_info( self, episodeid, playcount, playstatus): seen_query = json.loads(seen_query) seen = seen_query['episode']['user']['seen'] dl = seen_query['episode']['user']['downloaded'] + logstr += (' dl status: %s seen status: %s' % ( str(dl), str(seen))) # log("return :"+str(seen_query) , xbmc.LOGNOTICE) # log('seen %s %s : %s' % (showtitle, epname, seen) , xbmc.LOGNOTICE) except: diff --git a/service.betaseries.com/service.betaseries.com-1.0.13.zip b/service.betaseries.com/service.betaseries.com-1.0.13.zip index fc52ba33a349ba456c29773d7ec133d558e2ee09..6ef4c24109af56c1c9027851e1fc0ae7a2ad22bc 100644 GIT binary patch delta 7312 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 Date: Tue, 24 Mar 2020 00:13:14 +0100 Subject: [PATCH 08/18] Kodi 18 compatibility & bi-directional synchronisation --- addons.xml.md5 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons.xml.md5 b/addons.xml.md5 index 6f108ba..fa480a8 100644 --- a/addons.xml.md5 +++ b/addons.xml.md5 @@ -1 +1 @@ -36b8d1c242689b27643c91d4c47adf3a \ No newline at end of file +791e0ce13b6f1bd261a93650b2978df5 addons.xml From c800a40d7a9d94030efdd362842e737754d5352b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Physiologie=20des=20Cellules=20Cardiaques=20et=20Vasculair?= =?UTF-8?q?es=20-=20Universit=C3=A9=20de=20Tours?= Date: Mon, 30 Mar 2020 16:37:10 +0200 Subject: [PATCH 09/18] add compatibility with netflix and catchuptv addon --- addons.xml | 2 +- addons.xml.md5 | 2 +- service.betaseries.com/addon.xml | 2 +- service.betaseries.com/betaseries.py | 489 ++++++++++++------ service.betaseries.com/changelog.txt | 10 +- .../resources/language/English/strings.po | 9 + .../resources/language/French/strings.po | 12 + service.betaseries.com/resources/settings.xml | 4 +- .../service.betaseries.com-1.0.14.zip | Bin 0 -> 49630 bytes 9 files changed, 380 insertions(+), 150 deletions(-) create mode 100644 service.betaseries.com/service.betaseries.com-1.0.14.zip diff --git a/addons.xml b/addons.xml index 1438d41..6170c02 100644 --- a/addons.xml +++ b/addons.xml @@ -30,7 +30,7 @@ - + diff --git a/addons.xml.md5 b/addons.xml.md5 index fa480a8..334298e 100644 --- a/addons.xml.md5 +++ b/addons.xml.md5 @@ -1 +1 @@ -791e0ce13b6f1bd261a93650b2978df5 addons.xml +06a395a2f17b3988d89ed9785047d79d addons.xml diff --git a/service.betaseries.com/addon.xml b/service.betaseries.com/addon.xml index 9c362ac..28369e7 100644 --- a/service.betaseries.com/addon.xml +++ b/service.betaseries.com/addon.xml @@ -1,5 +1,5 @@ - + diff --git a/service.betaseries.com/betaseries.py b/service.betaseries.com/betaseries.py index 3e6c87a..8d9544d 100644 --- a/service.betaseries.com/betaseries.py +++ b/service.betaseries.com/betaseries.py @@ -1,3 +1,6 @@ +#!/usr/bin/python +# coding: utf-8 + # * This Program is free software; you can redistribute it and/or modify # * it under the terms of the GNU General Public License as published by # * the Free Software Foundation; either version 2, or (at your option) @@ -87,10 +90,10 @@ def __init__( self ): def _service_setup( self ): self.apikey = '5a85a0adc953' self.apiurl = 'https://api.betaseries.com' - self.apiver = '2.2' + self.apiver = '3.0' self.Monitor = MyMonitor(action = self._get_settings) self._get_settings() - + def _get_settings( self ): global debugMode log('reading settings') @@ -105,11 +108,11 @@ def _get_settings( self ): BetaFollow = __addon__.getSetting('betafollow') == 'true' BetaNotify = __addon__.getSetting('betanotify') == 'true' BetaUpdate = __addon__.getSetting('betaupdate') == 'true' - BetaDlded = __addon__.getSetting('betadlded') == 'true' + # BetaDlded = __addon__.getSetting('betadlded') == 'true' debugMode = __addon__.getSetting('betaverbose') == 'true' if BetaActive and BetaUser and BetaPass: # [service, api-url, api-key, user, pass, first-only, token, auth-fail, failurecount, timercounter, timerexpiretime, bulk, mark, unmark, follow] - service = ['betaseries', self.apiurl, self.apikey, BetaUser, BetaPass, BetaFirst, '', False, 0, 0, 0, BetaBulk, BetaMark, BetaUnMark, BetaFollow, BetaNotify, BetaUpdate, BetaDlded] + service = ['betaseries', self.apiurl, self.apikey, BetaUser, BetaPass, BetaFirst, '', False, 0, 0, 0, BetaBulk, BetaMark, BetaUnMark, BetaFollow, BetaNotify, BetaUpdate] self.Player = MyPlayer(action = self._service_betaserie, service = service) if service[15]: @@ -180,11 +183,11 @@ def _service_authenticate( self, service, timestamp ): service = self._service_fail( service, True ) xbmc.executebuiltin((u'Notification(%s,%s,%s,%s)' % (__addonname__, __language__(32001), 750, __icon__)).encode('utf-8', 'ignore')) log('server error while authenticating', xbmc.LOGERROR) - xbmc.executebuiltin((u'Notification(%s,%s,%s,%s)' % (__addonname__, "Authentication failed", 750, __icon__)).encode('utf-8', 'ignore')) + xbmc.executebuiltin((u'Notification(%s,%s,%s,%s)' % (__addonname__, __language__(32009), 750, __icon__)).encode('utf-8', 'ignore')) else: log("token find:"+service[6]) - xbmc.executebuiltin((u'Notification(%s,%s,%s,%s)' % (__addonname__, "Authentication succeeded", 750, __icon__)).encode('utf-8', 'ignore')) + xbmc.executebuiltin((u'Notification(%s,%s,%s,%s)' % (__addonname__, __language__(32008), 750, __icon__)).encode('utf-8', 'ignore')) return service def _service_mark( self, service, episode ): @@ -199,7 +202,7 @@ def _service_mark( self, service, episode ): if episode[6]=='episode': # follow show if BetaFollow = true # if service[14] and episode[2] != -1: - if service[14] and not episode[10]: + if service[14] and not episode[8]: url = service[1] + "/shows/show" urldata = {'v':self.apiver, 'key':service[2], 'token':service[6], 'thetvdb_id':episode[0]} try: @@ -222,12 +225,12 @@ def _service_mark( self, service, episode ): elif data['errors'][0]['code'] == 2003: log('already following show %s' % episode[4]) else: - xbmc.executebuiltin((u'Notification(%s,%s,%s,%s)' % (__addonname__, __language__(32005) + episode[4].decode('utf-8'), 750, __icon__)).encode('utf-8', 'ignore')) + xbmc.executebuiltin((u'Notification(%s,%s,%s,%s)' % (__addonname__, __language__(32005) + episode[4].encode('utf-8'), 750, __icon__)).encode('utf-8', 'ignore')) log('failed to follow show %s' % episode[4], xbmc.LOGNOTICE) return service else: if service[15]: - xbmc.executebuiltin((u'Notification(%s,%s,%s,%s)' % (__addonname__, __language__(30013) + episode[4].decode('utf-8'), 750, __icon__)).encode('utf-8', 'ignore')) + xbmc.executebuiltin((u'Notification(%s,%s,%s,%s)' % (__addonname__, __language__(30013) + episode[4].encode('utf-8'), 750, __icon__)).encode('utf-8', 'ignore')) log('now following show %s' % (episode[4])) if episode[6]=='movie': # mark movie as watched @@ -322,8 +325,7 @@ def __init__( self, *args, **kwargs ): self.Play = False log('Player Class Init') # cherche les episodes ajoute sur ce player et ajoute sur BS - if self.service[17]: - self.ScanRecentlyadded() + # self.ScanRecentlyadded() # cherche sur BS si un episode a ete marque sur un autre player if self.service[16]: self.ScanBSMarkedEpisode() @@ -332,71 +334,105 @@ def onNotification( self, sender, method, data ): if sender == 'xbmc': if method == 'VideoLibrary.OnScanFinished': # cherche les episodes ajoute sur ce player et ajoute sur BS - if self.service[17]: - self.ScanRecentlyadded() + # self.ScanRecentlyadded() # cherche sur BS si un episode a ete marque sur un autre player if self.service[16]: self.ScanBSMarkedEpisode() + # ajouter film ? elif method == 'Player.OnPlay': result = json.loads(data) + log("OnPlay: " + str(result)) if 'item' in result: + # result['item']['id'] if result['item']['type'] == 'episode': # in case Player.OnPlay comes to fast after Player.OnStop xbmc.sleep(1000) - log("watching episode, library id = %s" % result['item']['id']) + if 'id' in result['item']: + # corrige erreur avec autre plugin eg: netflix... + log("watching episode, library id = %s" % result['item']['id']) self.Play = True elif result['item']['type'] == 'movie': # in case Player.OnPlay comes to fast after Player.OnStop xbmc.sleep(1000) - log("watching movie, library id = %s" % result['item']['id']) + if 'id' in result['item']: + # corrige erreur avec autre plugin eg: netflix... + log("watching movie, library id = %s" % result['item']['id']) self.Play = True elif method == 'Player.OnStop': result = json.loads(data) + log("OnStop: " + str(result)) # if viewing in file mode and playback stopped at the end - if 'item' in result and 'title' in result["item"] and result["end"]: + if 'item' in result and result["end"]: if result['item']['type'] == 'episode': - # scrap episode infos from filename (item -> title) - scraper_url = "%s/episodes/scraper?file=%s&key=%s" % (self.service[1], result["item"]["title"], self.service[2]) - scraper_data = json.loads(get_urldata(scraper_url,"","GET"))["episode"] - title = str(scraper_data["season"]) + "x" + str(scraper_data["episode"]) - # get show's tvdbid from showid - show_url = "%s/shows/display?id=%s&key=%s" % (self.service[1], scraper_data["show_id"], self.service[2]) - tvdbid = json.loads(get_urldata(show_url,"","GET"))["show"]["thetvdb_id"] - # set episode infos - episode = [int(tvdbid), int(scraper_data["thetvdb_id"]), 1, True, str(scraper_data["show_title"]), title,'episode'] - # mark episode as watched - self.action(episode, self.service) + episode = False + if 'id' in result['item']: + episode = self._get_episode_info( result['item']['id'], 1, self.Play) + if 'episode' in result["item"] and 'season' in result["item"] and 'showtitle' in result["item"]: + logstr='' + tvdbid = self.tvdbidFromTitle( result['item']['showtitle'], logstr ) + if tvdbid: + tvdbepid = self.tvdbepidFromtvdbid(tvdbid, result["item"]['showtitle'], result["item"]['season'], result["item"]['episode'], logstr) + if tvdbepid: + epname = str(result["item"]['season']) + 'x' + str(result["item"]['episode']) + follow = self.followFromtvdbid(tvdbid, result["item"]['showtitle'], logstr) + log(logstr, xbmc.LOGNOTICE) + episode = [int(tvdbid), int(tvdbepid), 1, True, result["item"]['showtitle'], epname,'episode',1, bool(follow), bool(False),bool(False)] + if not episode and 'title' in result["item"]: + # scrap episode infos from filename (item -> title) problem si 2 shows meme titre + log(result["item"], xbmc.LOGNOTICE) + url = self.service[1] + '/episodes/scraper' + scraper_url = "?v=3.0&order=popularity&file=%s&key=%s" % (((result["item"]["title"]).encode('ascii', 'xmlcharrefreplace')).replace(' ','+'), self.service[2]) + log(result["item"]["title"], xbmc.LOGNOTICE) + scraper_data = json.loads(get_urldata(url+scraper_url,'',"GET")) + scraper_data = scraper_data["episode"] + title = str(scraper_data["season"]) + "x" + str(scraper_data["episode"]) + # get show's tvdbid from showid + show_url = "%s/shows/display?id=%s&key=%s" % (self.service[1], scraper_data["show_id"], self.service[2]) + tvdbid = json.loads(get_urldata(show_url,"","GET"))["show"]["thetvdb_id"] + logstr='' + follow = self.followFromtvdbid(tvdbid, scraper_data["show_title"], logstr) + + # set episode infos + episode = [int(tvdbid), int(scraper_data["thetvdb_id"]), 1, True, str(scraper_data["show_title"]), title,'episode', 1, bool(follow), bool(False),bool(False)] + # mark episode as watched + if (episode): + log(episode) + self.action(episode, self.service) elif result['item']['type'] == 'movie': - # scrap movie infos from filename (item -> title) - scraper_url = "%s/movies/scraper?file=%s&key=%s" % (self.service[1], result["item"]["title"], self.service[2]) - scraper_data = json.loads(get_urldata(scraper_url,"","GET"))["movie"] - # set movie infos - movie = [int(scraper_data["id"]), int(scraper_data["thetvdb_id"]), 1, True, '', str(scraper_data["title"]), 'movie'] + movie=False + if 'id' in result['item']: + movie = self._get_movie_info( result['item']['id'], 1, self.Play) + elif 'title' in result["item"]: + movie = self._get_movie_info( result['item']['title'], 1, self.Play) # mark movie as watched - self.action(movie, self.service) + if movie: + self.action(movie, self.service) else: # wait 1s to avoid setting Play=False before marking episode xbmc.sleep(1000) self.Play = False elif method == 'VideoLibrary.OnUpdate': result = json.loads(data) + log("OnUpdate: " + str(result)) if 'playcount' in result: if 'item' in result: if result['item']['type'] == 'episode': log("episode status changed for library id = %s, playcount = %s" % (result['item']['id'], result['playcount'])) episode = self._get_episode_info( result['item']['id'], result['playcount'], self.Play) + log(episode) if episode: if result['playcount']==0: # mark as downloaded episode[2]=-1 self.action(episode, self.service) # mark as watched or not, depending on playcount - if not episode[8]: + if not episode[10]: self.action(episode, self.service) self.Play = False elif result['item']['type'] == 'movie': log("movie status changed for library id = %s, playcount = %s" % (result['item']['id'], result['playcount'])) movie = self._get_movie_info( result['item']['id'], result['playcount'], self.Play) + log(movie) if movie: # mark as watched or not, depending on playcount self.action(movie, self.service) @@ -404,17 +440,27 @@ def onNotification( self, sender, method, data ): # rechercher les episodes non marques def ScanBSMarkedEpisode (self): + f = __addon__.getAddonInfo('path') + '/lastdate.tmp' + try: + with open (f,"r") as fic: + lastdate = fic.read() + except: + lastdate = '2001-01-01 00:00:00' + newdate = lastdate + new = False counter = 0 + # cree table de tous les episodes result_episodes = json.loads(xbmc.executeJSONRPC('{ "jsonrpc": "2.0", "method": "VideoLibrary.GetEpisodes", "id": 1 }')) if 'result' in result_episodes: if 'episodes' in result_episodes['result']: + log("Start scanning BS for viewed episode and compare with XMBC database") for episode in result_episodes['result']['episodes']: ep_id = episode['episodeid'] seen = False try: # test chaque episode si marque vu - tvshow_query = '{"jsonrpc": "2.0", "method": "VideoLibrary.GetEpisodeDetails", "params": {"episodeid": ' + str(ep_id) + ', "properties": ["playcount"]}, "id": 1}' + tvshow_query = '{"jsonrpc": "2.0", "method": "VideoLibrary.GetEpisodeDetails", "params": {"episodeid": ' + str(ep_id) + ', "properties": ["dateadded", "playcount"]}, "id": 1}' tvshow = json.loads(xbmc.executeJSONRPC (tvshow_query))['result']['episodedetails'] if tvshow['playcount'] > 0: seen = True @@ -422,17 +468,28 @@ def ScanBSMarkedEpisode (self): log("VideoLibrary.GetEpisodeDetails error for " + str(ep_id), xbmc.LOGERROR) # passe au suivant si erreur continue - if not seen: + + if tvshow['dateadded'] > lastdate: + new = True + if tvshow['dateadded'] > newdate: + newdate = tvshow['dateadded'] + + if new or not seen: # si pas vu, regarder sur BS si marque episode = self._get_episode_info( episode['episodeid'], -1, self.Play) if episode and type(episode) is list: - if episode[7] < 1 and episode[8]: - if not self.service[6]: - # Verifie si connecte; [0] = episode vide - self.action([0], self.service) + if not self.service[6]: + # Verifie si connecte; [0] = episode vide + self.action([0], self.service) + if seen: + episode[2] = 1 + # follow ? # downloaded ? + if not episode[8] or not episode[9]: + self.action(episode, self.service) + if episode[7] < 1 and episode[10]: query = '{"jsonrpc":"2.0", "method": "VideoLibrary.SetEpisodeDetails", "params":{"playcount": 1, "episodeid": ' + str(ep_id) + '}, "id": 1}' result = json.loads(xbmc.executeJSONRPC (query)) - log("info 4/5:"+str(episode[4])+","+str(episode[5]), xbmc.LOGNOTICE) + log("info 4/5:"+episode[4]+","+episode[5], xbmc.LOGNOTICE) if result['result'] == "OK": # log(result, xbmc.LOGNOTICE) log("episode marked watched on BetaSeries.com", xbmc.LOGNOTICE) @@ -440,9 +497,12 @@ def ScanBSMarkedEpisode (self): else: log("error: failed to mark watched on XBMC", xbmc.LOGERROR) if counter > 0: - xbmc.executebuiltin((u'Notification(%s,%s,%s,%s)' % (__addonname__, ("Marked " + str(counter) + "episode(s) as watched"), 750, __icon__)).encode('utf-8', 'ignore')) + # xbmc.executebuiltin((u'Notification(%s,%s,%s,%s)' % (__addonname__, ("Marked " + str(counter) + "episode(s) as watched"), 750, __icon__)).encode('utf-8', 'ignore')) + xbmc.executebuiltin((u'Notification(%s,%s,%s,%s)' % (__addonname__, __language__(30021) % (str(counter)), 750, __icon__)).encode('utf-8', 'ignore')) else: - log("All episodes updated", xbmc.LOGNOTICE) + log("Scan finished, all episodes updated", xbmc.LOGNOTICE) + with open (f,'wb') as fic: + fic.write(newdate) def ScanRecentlyadded ( self): f = __addon__.getAddonInfo('path') + '/lastdate.tmp' @@ -462,6 +522,7 @@ def ScanRecentlyadded ( self): result_episodes = json.loads(xbmc.executeJSONRPC('{ "jsonrpc": "2.0", "method": "VideoLibrary.GetRecentlyAddedEpisodes", "params": {"properties": ["dateadded"]}, "id": 1 }')) if 'result' in result_episodes: if 'episodes' in result_episodes['result']: + log("Start scanning XBMC database for recent files and update BS for downloaded episode") # log("VideoLirary GetRecentlyAddedEpisodes : %s" % result_episodes['result']['episodes']) for episode in result_episodes['result']['episodes']: if episode['dateadded'] > lastdate: @@ -471,108 +532,200 @@ def ScanRecentlyadded ( self): episode = self._get_episode_info( episode['episodeid'], -1, self.Play) if episode and type(episode) is list: if not episode[9]: + log("call service") episode[2]=-1 self.action(episode, self.service) with open (f,'wb') as fic: fic.write(newdate) else: - log("VideoLibrary GetRecentlyAddedEpisodes in ERROR : %s" % result_episodes) + log("VideoLibrary GetRecentlyAddedEpisodes ERROR : %s" % result_episodes) - def _get_episode_info( self, episodeid, playcount, playstatus): - tvdbid = False - tvdbepid = False - logstr = "" - # log("id episode: %s" % episodeid) + def tvdbidFromTitle( self, showtitle, logstr ): + url = self.service[1] + '/shows/list' + urldata = '?v=3.0&key=' + self.service[2] + '&order=popularity&summary=true&starting=' + (showtitle.encode('ascii', 'xmlcharrefreplace')).replace(' ','+') + log(urldata,xbmc.LOGNOTICE) try: - tvshow_query = '{"jsonrpc": "2.0", "method": "VideoLibrary.GetEpisodeDetails", "params": {"episodeid": ' + str(episodeid) + ', "properties": ["tvshowid", "showtitle", "season", "episode", "uniqueid", "playcount"]}, "id": 1}' - tvshow = json.loads(xbmc.executeJSONRPC (tvshow_query))['result']['episodedetails'] - # log(tvshow, xbmc.LOGNOTICE) - if 'uniqueid' in tvshow and 'unknown' in tvshow['uniqueid']: - tvdbepid = tvshow['uniqueid']['unknown'] - # log("theTvDb episode id : %s" % tvdbepid) - showtitle = tvshow['showtitle'].encode("utf-8") - epname = str(tvshow['season']) + 'x' + str(tvshow['episode']) - # if tvshowid: - logstr += ('Id: %s Title: %s tvshowid: %s tvdbepid: %s' % (episodeid, tvshow['showtitle'], tvshow['tvshowid'], tvdbepid)) - # else: - # logstr += ('Id: %s Title: %s tvdbepid: %s' % (episodeid, showtitle, tvdbepid)) + tvdbid_query = get_urldata(url + urldata, '', "GET") + tvdbid_query = json.loads(tvdbid_query) + for found in tvdbid_query['shows']: + if found['title'] == showtitle or found['title'].lower() == showtitle.lower(): + if 'thetvdb_id' in found: + tvdbid = found['thetvdb_id'] + logstr += ("tvdbid: "+str(tvdbid)) + return tvdbid except: - log("VideoLibrary.GetEpisodeDetails error for " + str(episodeid), xbmc.LOGERROR) + log(logstr , xbmc.LOGNOTICE) + log("No search result for tvshow's " + showtitle, xbmc.LOGWARNING) + + def tvdbidFromimbd( self, imdbid, logstr ): + url = self.service[1] + '/shows/display' + urldata = '?v=3.0&key=' + self.service[2] + '&imdb_id=' + imdbid + try: + tvdbid_query = get_urldata(url + urldata, '', "GET") + tvdbid_query = json.loads(tvdbid_query) + tvdbid = tvdbid_query['show']['thetvdb_id'] + logstr += (' convert to %s ' % (tvdbid)) + except: + log(logstr , xbmc.LOGNOTICE) + log('Cannot convert from %s' %(imdbid), xbmc.LOGERROR) return False - + return tvdbid + + def tvdbidFromtvdbepid( self, tvdbepid, showtitle, logstr ): + showid = False + url = self.service[1] + '/episodes/display' + urldata = '?v=3.0&key=' + self.service[2] + '&thetvdb_id=' + tvdbepid try: - tvdbid_query = '{"jsonrpc": "2.0", "method": "VideoLibrary.GetTVShowDetails", "params": {"tvshowid": ' + str(tvshow['tvshowid']) + ', "properties": ["imdbnumber"]}, "id": 1}' - tvdbid = json.loads(xbmc.executeJSONRPC (tvdbid_query))['result']['tvshowdetails']['imdbnumber'] - logstr += ('\ntvdbid: %s' % ( tvdbid) ) + tvdbid_query = get_urldata(url + urldata, '', "GET") + tvdbid_query = json.loads(tvdbid_query) + # log(tvdbid_query, xbmc.LOGNOTICE) + if "show" in tvdbid_query['episode']: + tvdbid = tvdbid_query['episode']['show']['thetvdb_id'] + logstr += ('\nBS tvdbid from tvdbepid: %s' % ( tvdbid) ) + return tvdbid + else: + showid = tvdbid_query['episode']['show_id'] except: log(logstr , xbmc.LOGNOTICE) - tvdbid = False - log("could not get tvshow/episode details for "+ str(episodeid), xbmc.LOGERROR) - # si imbd_id, convert to thetvdb_id - if (tvdbid): - if (tvdbid).startswith("tt"): - imdbid = tvdbid - url = self.service[1] + '/shows/display' - urldata = '?v=2.2&key=' + self.service[2] + '&imdb_id=' + imdbid - try: - tvdbid_query = get_urldata(url + urldata, '', "GET") - tvdbid_query = json.loads(tvdbid_query) - tvdbid = tvdbid_query['show']['thetvdb_id'] - - logstr += (' convert to %s ' % (tvdbid)) - except: - log(logstr , xbmc.LOGNOTICE) - log('Cannot convert from %s' %(imdbid), xbmc.LOGERROR) - tvdbid = False - # si aucun tvdbid, chercher avec le Titre - if not tvdbid: - url = self.service[1] + '/shows/search' - urldata = '?v=2.2&key=' + self.service[2] + '&title=' + showtitle + log("failed to get show_id for " + showtitle, xbmc.LOGERROR) + + if showid: + url = self.service[1] + '/shows/display' + urldata = '?v=3.0&key=' + self.service[2] + '&id=' + str(showid) try: tvdbid_query = get_urldata(url + urldata, '', "GET") tvdbid_query = json.loads(tvdbid_query) - tvdbid = tvdbid_query['shows']['thetvdb_id'] - logstr += (' BS tvdbid from title: %s' % ( tvdbid) ) + tvdbid = tvdbid_query['show']['thetvdb_id'] + logstr += ('\nBS tvdbid from tvdbepid: %s' % ( tvdbid) ) + return tvdbid except: log(logstr , xbmc.LOGNOTICE) - log("could not fetch tvshow's thetvdb_id for " + showtitle, xbmc.LOGERROR) - return False + log("could not fetch tvshow's thetvdb_id from show_id for " + showtitle, xbmc.LOGERROR) + return False - follow = False - # Auth : send episode vide + def tvdbepidFromtvdbid(self, tvdbid, showtitle, season, episode, logstr ): + epname = str(season) + 'x' + str(episode) + url = self.service[1] + '/shows/episodes' + urldata = '?v=3.0&key=' + self.service[2] + '&thetvdb_id=' + str(tvdbid) + '&season=' + str(season) + '&episode=' + str(episode) + try: + tvdbepid_query = get_urldata(url + urldata, '', "GET") + tvdbepid_query = json.loads(tvdbepid_query) + tvdbepid = tvdbepid_query['episodes'][0]['thetvdb_id'] + logstr += (' tvdbepid: %s for Ep %s' % ( str(tvdbepid), epname)) + except: + if logstr: + log(logstr , xbmc.LOGNOTICE) + log("could not fetch episode's thetvdb_id for " + showtitle + "-" + epname, xbmc.LOGERROR) + return False + return tvdbepid + + def followFromtvdbid( self, tvdbid, showtitle, logstr ): + # Auth : send episode vide if not self.service[6]: self.action([0], self.service) url = self.service[1] + '/shows/display' - urldata = '?v=2.2&key=' + self.service[2] + '&token=' + self.service[6] + '&thetvdb_id=' + str(tvdbid) + urldata = '?v=3.0&key=' + self.service[2] + '&token=' + self.service[6] + '&thetvdb_id=' + str(tvdbid) try: tvdbid_query = get_urldata(url + urldata, '', "GET") tvdbid_query = json.loads(tvdbid_query) follow = tvdbid_query['show']['in_account'] logstr += (' follow status: %s' % ( str(follow) )) + return follow except: - log(logstr , xbmc.LOGNOTICE) - log("could not get follow tvshow's status for " + showtitle, xbmc.LOGERROR) + log("could not get follow tvshow's status for " + showtitle, xbmc.LOGWARNING) + return False - if (tvdbepid): - if (tvdbepid).startswith("tt"): - tvdbepid = False - if not tvdbepid: - url = self.service[1] + '/shows/episodes' - urldata = '?v=2.2&key=' + self.service[2] + '&thetvdb_id=' + str(tvdbid) + '&season=' + str(tvshow['season']) + '&episode=' + str(tvshow['episode']) + def _get_episode_info( self, episodeid, playcount, playstatus): + tvdbid = False + tmdbid = False + tvdbepid = False + logstr = "" + # log("id episode: %s" % episodeid) + try: + tvshow_query = '{"jsonrpc": "2.0", "method": "VideoLibrary.GetEpisodeDetails", "params": {"episodeid": ' + str(episodeid) + ', "properties": ["tvshowid", "showtitle", "season", "episode", "uniqueid", "playcount"]}, "id": 1}' + tvshow = json.loads(xbmc.executeJSONRPC (tvshow_query))['result']['episodedetails'] + # log(tvshow, xbmc.LOGNOTICE) + if 'uniqueid' in tvshow: + if 'tvdb' in tvshow['uniqueid']: + tvdbepid = tvshow['uniqueid']['tvdb'] + elif 'imdb' in tvshow['uniqueid']: + tvdbepid = tvshow['uniqueid']['imdb'] + elif 'unknown' in tvshow['uniqueid']: + # suppose to be tvdbid !!! + tvdbepid = tvshow['uniqueid']['unknown'] + if (tvdbepid): + if (tvdbepid).startswith("tt"): + tvdbepid = False + showtitle = tvshow['showtitle'] + # .encode("utf-8") + epname = str(tvshow['season']) + 'x' + str(tvshow['episode']) + # if tvshow['tvshowid']: + logstr += ('Id: %s Title: %s tvshowid: %s tvdbepid: %s' % (episodeid, tvshow['showtitle'], tvshow['tvshowid'], tvdbepid)) + # else: + # logstr += ('Id: %s Title: %s tvdbepid: %s' % (episodeid, showtitle, tvdbepid)) + except: + log("VideoLibrary.GetEpisodeDetails error for " + str(episodeid), xbmc.LOGERROR) + return False + + if tvshow['tvshowid'] != -1: try: - tvdbepid_query = get_urldata(url + urldata, '', "GET") - tvdbepid_query = json.loads(tvdbepid_query) - tvdbepid = tvdbepid_query['episodes'][0]['thetvdb_id'] - logstr += (' tvdbepid: %s for Ep %s' % ( tvdbepid, epname)) + tvdbid_query = '{"jsonrpc": "2.0", "method": "VideoLibrary.GetTVShowDetails", "params": {"tvshowid": ' + str(tvshow['tvshowid']) + ', "properties": ["imdbnumber", "uniqueid"]}, "id": 1}' + tvdbid_query = json.loads(xbmc.executeJSONRPC (tvdbid_query))['result']['tvshowdetails'] + # log(tvdbid_query) + if 'uniqueid' in tvdbid_query: + if 'tvdb' in tvdbid_query['uniqueid']: + tvdbid = tvdbid_query['uniqueid']['tvdb'] + elif 'imdb' in tvdbid_query['uniqueid']: + tvdbid = tvdbid_query['uniqueid']['imdb'] + # elif 'tmdb' in tvdbid_query['uniqueid']: + # tmdbid = tvdbid_query['uniqueid']['tmdb'] + # elif 'unkown' in tvdbid_query['uniqueid']: + # tmdbid = tvdbid_query['uniqueid']['unkown'] + else: + tvdbid = tvdbid_query['imdbnumber'] + else: + tvdbid = tvdbid_query['imdbnumber'] + if tvdbid: + logstr += ('\ntvdbid: %s' % ( tvdbid) ) + if tmdbid: + logstr += ('\ntmdbid: %s' % ( tmdbid) ) except: log(logstr , xbmc.LOGNOTICE) - log("could not fetch episode's thetvdb_id for " + showtitle + "-" + epname, xbmc.LOGERROR) + tvdbid = False + log("could not get tvshow/episode details for "+ str(episodeid), xbmc.LOGERROR) + + # si imbd_id, convert to thetvdb_id + if (tvdbid): + # log('tvdbid: %s' % ( tvdbid) , xbmc.LOGNOTICE) + if (tvdbid).startswith("tt"): + tvdbid = self.tvdbidFromimbd(tvdbid, logstr) + + if not tvdbid: + # if tvdbepid, convert to thetvdb_id + if tvdbepid: + tvdbid = self.tvdbidFromtvdbepid(tvdbepid, showtitle, logstr) + + # si aucun tvdbid, chercher avec le Titre !!! + if not tvdbid: + tvdbid = self.tvdbidFromTitle( showtitle, logstr ) + if tvdbid: + # log("found tvdbid "+ str(tvdbid ) +" for " + showtitle , xbmc.LOGNOTICE) + logstr += ('\nBS tvdbid from title: %s' % ( tvdbid) ) + else: + log("could not fetch tvshow's thetvdb_id from title for " + showtitle, xbmc.LOGERROR) return False + + follow = self.followFromtvdbid(tvdbid, showtitle, logstr) + if not tvdbepid: + tvdbepid = self.tvdbepidFromtvdbid(tvdbid, showtitle, tvshow['season'], tvshow['episode'], logstr) + if not tvdbepid: + return False + seen=False dl=False - if tvshow['playcount'] < 1: + if tvshow['playcount'] < 1 and follow: url = self.service[1] + '/episodes/display' - urldata = '?v=2.2&key=' + self.service[2] + '&token=' + self.service[6] + '&thetvdb_id=' + str(tvdbepid) + urldata = '?v=3.0&key=' + self.service[2] + '&token=' + self.service[6] + '&thetvdb_id=' + str(tvdbepid) try: seen_query = get_urldata(url + urldata, "", "GET") seen_query = json.loads(seen_query) @@ -583,49 +736,97 @@ def _get_episode_info( self, episodeid, playcount, playstatus): # log('seen %s %s : %s' % (showtitle, epname, seen) , xbmc.LOGNOTICE) except: log(logstr , xbmc.LOGNOTICE) - log('failed to get status for %s' % showtitle, xbmc.LOGERROR) - return False + log('failed to get status for %s - %s' % (showtitle, epname), xbmc.LOGWARNING) log(logstr) - epinfo = [int(tvdbid), int(tvdbepid), int(playcount), bool(playstatus), showtitle, epname, 'episode', tvshow['playcount'], bool(seen), bool(dl), bool(follow)] + epinfo = [int(tvdbid), int(tvdbepid), int(playcount), bool(playstatus), showtitle, epname, 'episode', tvshow['playcount'], bool(follow), bool(dl), bool(seen)] return epinfo - def _get_movie_info( self, episodeid, playcount, playstatus ): - method = 'VideoLibrary.GetMovieDetails' - params = '"movieid": ' + str(episodeid) + ', "properties": ["imdbnumber", "originaltitle", "sorttitle", "title", "uniqueid"]' - returncode = 'moviedetails' - movie_query = '{"jsonrpc": "2.0", "method": "' + str(method) + '", "params": {' + str(params) + '}, "id": 1}' - movie = json.loads(xbmc.executeJSONRPC (movie_query))['result']['moviedetails'] - imdbid = '' - tvdbid = '' - id = '' + def imdbidFromTitle( self, showtitle, logstr ): + # url = self.service[1] + '/movies/search' + url = self.service[1] + '/movies/scraper' + urldata = '?v=3.0&key=' + self.service[2] + 'file=' + (showtitle.encode('ascii', 'xmlcharrefreplace')).replace(' ','+') + log(urldata,xbmc.LOGNOTICE) try: - imdbid = movie['imdbnumber'] - moviename = movie['originaltitle'].encode("utf-8") - log('movie found= %s %s' % (moviename, imdbid)) + tvdbid_query = get_urldata(url + urldata, '', "GET") + tvdbid_query = json.loads(tvdbid_query) + for found in tvdbid_query['movies']: + # log(found, xbmc.LOGNOTICE) + log("testing " + found['title'], xbmc.LOGNOTICE) + if found['title'] == showtitle or found['title'].lower() == showtitle.lower(): + log("found " + found['title'], xbmc.LOGNOTICE) + if 'imdb_id' in found: + tvdbid = found['imdb_id'] + log("imdb_id: "+str(tvdbid), xbmc.LOGNOTICE) + return tvdbid except: + log(logstr , xbmc.LOGNOTICE) + log("could not fetch movie's %s imdb_id" % (showtitle), xbmc.LOGNOTICE) + return False + + def _get_movie_info( self, episodeid, playcount, playstatus ): + imdbid = False + tvdbid = False + id = False + seen=False + follow=False + epinfo = False + if isinstance(episodeid, int): + method = 'VideoLibrary.GetMovieDetails' + params = '"movieid": ' + str(episodeid) + ', "properties": ["imdbnumber", "originaltitle", "sorttitle", "title", "uniqueid"]' + returncode = 'moviedetails' + movie_query = '{"jsonrpc": "2.0", "method": "' + str(method) + '", "params": {' + str(params) + '}, "id": 1}' + movie = json.loads(xbmc.executeJSONRPC (movie_query))['result']['moviedetails'] + try: + imdbid = movie['imdbnumber'] + moviename = movie['originaltitle'] + # .encode("utf-8") + logstr += ('movie found= %s %s' % (moviename, imdbid)) + except: log("could not get movie details", xbmc.LOGNOTICE) - if not imdbid: - url = self.service[1] + '/movies/search' - urldata = '?v=2.2&key=' + self.service[2] + '&title=' + moviename + + if not imdbid: + imdbid = self.imdbidFromTitle(moviename, logstr) + if not imdbid: + return False + + url = self.service[1] + '/movies/movie' + urldata = '?v=3.0&token=' + self.service[6] + '&key=' + self.service[2] + '&imdb_id=' + str(imdbid) try: - imdbid_query = get_urldata(url + urldata, '', "GET") - imdbid_query = json.loads(imdbid_query) - imdbid = imdbid_query['movies'][0]['imdb_id'] + tvdbid_query = get_urldata(url + urldata, '', "GET") + # log(tvdbid_query) + tvdbid_query = json.loads(tvdbid_query) + tvdbid = tvdbid_query['movie']['tmdb_id'] + id = tvdbid_query['movie']['id'] except: - log("could not fetch movie's %s imdb_id : %s " % (moviename, imdbid), xbmc.LOGNOTICE) + log("could not fetch movie %s thetmdb_id : %s , %s" % (imdbid, tvdbid , id ), xbmc.LOGERROR) + return False + if 'user' in tvdbid_query['movie']: + follow = tvdbid_query['movie']['user']['in_account'] + seen = tvdbid_query['movie']['user']['status'] + epinfo = [int(id), tvdbid, int(playcount), bool(playstatus), '', moviename, 'movie', bool(follow), bool(seen)] + + else: + url = self.service[1] + '/movies/scraper' + urldata = '?v=3.0&token=' + self.service[6] + '&key=' + self.service[2] + '&file=' + (episodeid.encode('ascii', 'xmlcharrefreplace')).replace(' ','+') + try: + tvdbid_query = get_urldata(url + urldata, '', "GET") + tvdbid_query = json.loads(tvdbid_query) + if 'movie' in tvdbid_query: + # for found in tvdbid_query['movie']: + found = tvdbid_query['movie'] + # found['original_title'] + if found['title'] == episodeid or found['title'].lower() == episodeid.lower(): + logstr += ("found " + found['title']) + if 'imdb_id' in found: + tvdbid = found['imdb_id'] + logstr += (" imdb_id: "+str(tvdbid)) + if 'user' in found: + dl = found['user']['in_account'] + seen = found['user']['status'] + epinfo = [int(found['id']), str(tvdbid), int(playcount), bool(playstatus), '', found['original_title'], 'movie', bool(follow), bool(seen)] + except: + log("could not fetch movie's %s imdb_id" % (episodeid), xbmc.LOGERROR) return False - url = self.service[1] + '/movies/movie' - urldata = '?key=' + self.service[2] + '&imdb_id=' + str(imdbid) - try: - tvdbid_query = get_urldata(url + urldata, '', "GET") - log(tvdbid_query) - tvdbid_query = json.loads(tvdbid_query) - tvdbid = tvdbid_query['movie']['tmdb_id'] - id = tvdbid_query['movie']['id'] - except: - log("could not fetch movie %s thetmdb_id : %s , %s" % (imdbid, tvdbid , id ), xbmc.LOGNOTICE) - return False - epinfo = [int(id), int(tvdbid), int(playcount), bool(playstatus), '', moviename, 'movie'] return epinfo # monitor settings change diff --git a/service.betaseries.com/changelog.txt b/service.betaseries.com/changelog.txt index adf0b4e..e4e70e2 100644 --- a/service.betaseries.com/changelog.txt +++ b/service.betaseries.com/changelog.txt @@ -1,5 +1,13 @@ +1.0.14 +- add compatibility with Netflix addon +- add compatibility with Catchuptv addon +- add pseudo compatibility with themoviedb (not recommended) +- fix search from title +- add some traductions +- API v3.0 + 1.0.13 -- convert from imbd_id in tvdb_id +- convert from imbd_id to tvdb_id - add auto-update from BS 1.0.12 diff --git a/service.betaseries.com/resources/language/English/strings.po b/service.betaseries.com/resources/language/English/strings.po index ceb8fa5..666b903 100644 --- a/service.betaseries.com/resources/language/English/strings.po +++ b/service.betaseries.com/resources/language/English/strings.po @@ -91,6 +91,9 @@ msgid "Update episodes seen from BS at each start" msgctxt "#30020" msgid "Mark recently added file as downloaded on BS at each start" +msgctxt "#30021" +msgid "%s episode(s) marked as watched" + #empty strings from id 30018 to 32000 msgctxt "#30101" @@ -124,3 +127,9 @@ msgstr "" msgctxt "#32007" msgid "Failed to mark movie !" msgstr "" + +msgctxt "#32008" +msgid "Authentication succeeded" + +msgctxt "#32009" +msgid "Authentication failed" \ No newline at end of file diff --git a/service.betaseries.com/resources/language/French/strings.po b/service.betaseries.com/resources/language/French/strings.po index 4ad9b18..b9205ba 100644 --- a/service.betaseries.com/resources/language/French/strings.po +++ b/service.betaseries.com/resources/language/French/strings.po @@ -92,6 +92,10 @@ msgctxt "#30020" msgid "Mark recently added file as downloaded on BS at each start" msgstr "Note les fichiers récents comme téléchargés sur BS à chaque démarrage" +msgctxt "#30021" +msgid "%s episode(s) marked as watched" +msgstr "%s episode(s) marqué(s) comme vu !" + msgctxt "#30101" msgid "Episode marked as downloaded !" msgstr "Episode marqué récupéré !" @@ -123,3 +127,11 @@ msgstr "Erreur lors du marquage de l'épisode !" msgctxt "#32007" msgid "Failed to mark movie !" msgstr "Erreur lors du marquage du film !" + +msgctxt "#32008" +msgid "Authentication succeeded" +msgstr "Authentification réussie" + +msgctxt "#32009" +msgid "Authentication failed" +msgstr "Echec d'authentification" \ No newline at end of file diff --git a/service.betaseries.com/resources/settings.xml b/service.betaseries.com/resources/settings.xml index c90374f..5837e48 100644 --- a/service.betaseries.com/resources/settings.xml +++ b/service.betaseries.com/resources/settings.xml @@ -11,7 +11,7 @@ - - + + diff --git a/service.betaseries.com/service.betaseries.com-1.0.14.zip b/service.betaseries.com/service.betaseries.com-1.0.14.zip new file mode 100644 index 0000000000000000000000000000000000000000..5a798ec5534cc5ff056bda092a771400f064d1fe GIT binary patch literal 49630 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 literal 0 HcmV?d00001 From 0b0f41de5445b416262f8b7ba6f9ea9abd9320d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Physiologie=20des=20Cellules=20Cardiaques=20et=20Vasculair?= =?UTF-8?q?es=20-=20Universit=C3=A9=20de=20Tours?= Date: Mon, 30 Mar 2020 17:55:13 +0200 Subject: [PATCH 10/18] add news to addons.xml --- addons.xml | 175 +++++++++++------- addons.xml.md5 | 2 +- repository.betaseries/addon.xml | 4 +- .../service.betaseries.com-1.0.13.zip | Bin 22722 -> 0 bytes .../service.betaseries.com-1.0.14.zip | Bin 49630 -> 74565 bytes 5 files changed, 106 insertions(+), 75 deletions(-) delete mode 100644 service.betaseries.com/service.betaseries.com-1.0.13.zip diff --git a/addons.xml b/addons.xml index 6170c02..728b346 100644 --- a/addons.xml +++ b/addons.xml @@ -1,79 +1,110 @@ - - - - - - - - all - tvsubtitles.net subtitles service - Service de sous-titres tvsubtitles.net - Search and download subtitles from tvsubtitles.net - Rechercher et télécharger des sous-titres depuis tvsubtitles.net - - + + + + + + + + all + tvsubtitles.net subtitles service + Service de sous-titres tvsubtitles.net + Search and download subtitles from tvsubtitles.net + Rechercher et télécharger des sous-titres depuis tvsubtitles.net + + - - - - - - - - all - BetaSeries subtitles service - Service de sous-titres BetaSeries - Search and download subtitles from BetaSeries.com - Rechercher et télécharger des sous-titres depuis BetaSeries.com - - + + + + + + + + all + BetaSeries subtitles service + Service de sous-titres BetaSeries + Search and download subtitles from BetaSeries.com + Rechercher et télécharger des sous-titres depuis BetaSeries.com + + - - - - - - - - Synchronization with BetaSeries.com - Synchronisation avec BetaSeries.com - This service automatically updates your profile on BetaSeries.com when you have finished watching an episode or a movie on Kodi - Ce service met à jour automatiquement votre profil sur le site BetaSeries.com lorsque vous venez de finir de regarder un épisode ou nu film dans Kodi - - all - http://www.betaseries.com/wiki/Plugin%20XBMC - - + + + + + + + + Synchronization with BetaSeries.com + Synchronisation avec BetaSeries.com + This service automatically updates your profile on BetaSeries.com when you have finished watching an episode or a movie on Kodi + Ce service met à jour automatiquement votre profil sur le site BetaSeries.com lorsque vous venez de finir de regarder un épisode ou nu film dans Kodi + + all + https://support.betaseries.com/article/38-les-applications-betaseries + + v1.0.14 (2020/03/30) + - add compatibility with Netflix addon + - add compatibility with Catchuptv addon + - add pseudo compatibility with themoviedb (not recommended) + - fix search from title + - add some traductions + - change to Betaseries API v3.0 + + + - - - - - - - - all - Addic7ed subtitles service - Service de sous-titres Addic7ed - Search and download subtitles from Addic7ed.com - Rechercher et télécharger des sous-titres depuis Addic7ed.com - - + + + + + + + + Synchronization with BetaSeries.com + Synchronisation avec BetaSeries.com + This service automatically updates your profile on BetaSeries.com when you have finished watching an episode or a movie on Kodi + Ce service met à jour automatiquement votre profil sur le site BetaSeries.com lorsque vous venez de finir de regarder un épisode ou nu film dans Kodi + + all + https://support.betaseries.com/article/38-les-applications-betaseries + + v1.0.13 (2020/03/24) + - convert from imbd_id to tvdb_id + - add auto-update from BS + + + - - - https://raw.github.com/PCCV/xbmc-betaseries/master/addons.xml - https://raw.github.com/PCCV/xbmc-betaseries/master/addons.xml.md5 - https://raw.github.com/PCCV/xbmc-betaseries/master/ - - - BetaSeries Add-on Repository - This repository contains the BetaSeries.com add-on for XBMC and maintains it up to date - Ce dépôt contient l'extension BetaSeries.com pour XBMC et permet de la maintenir à jour - If it breaks, you get to keep the pieces - all - - + + + + + + + + all + Addic7ed subtitles service + Service de sous-titres Addic7ed + Search and download subtitles from Addic7ed.com + Rechercher et télécharger des sous-titres depuis Addic7ed.com + + + + + + https://raw.github.com/PCCV/xbmc-betaseries/master/addons.xml + https://raw.github.com/PCCV/xbmc-betaseries/master/addons.xml.md5 + https://raw.github.com/PCCV/xbmc-betaseries/master/ + + + BetaSeries Add-on Repository + This repository contains the BetaSeries.com add-on for XBMC and maintains it up to date + Ce dépôt contient l'extension BetaSeries.com pour XBMC et permet de la maintenir à jour + If it breaks, you get to keep the pieces + all + + diff --git a/addons.xml.md5 b/addons.xml.md5 index 334298e..750504d 100644 --- a/addons.xml.md5 +++ b/addons.xml.md5 @@ -1 +1 @@ -06a395a2f17b3988d89ed9785047d79d addons.xml +658c16ae3d4fdd5197a4211cea94f2e0 addons.xml diff --git a/repository.betaseries/addon.xml b/repository.betaseries/addon.xml index 05bf1aa..477b7c8 100644 --- a/repository.betaseries/addon.xml +++ b/repository.betaseries/addon.xml @@ -1,9 +1,9 @@ - https://raw.github.com/PCCV/xbmc-betaseries/master/addons.xml + https://raw.github.com/PCCV/xbmc-betaseries/master/addons.xml https://raw.github.com/PCCV/xbmc-betaseries/master/addons.xml.md5 - https://raw.github.com/PCCV/xbmc-betaseries/master/ + https://raw.github.com/PCCV/xbmc-betaseries/master BetaSeries Add-on Repository diff --git a/service.betaseries.com/service.betaseries.com-1.0.13.zip b/service.betaseries.com/service.betaseries.com-1.0.13.zip deleted file mode 100644 index 6ef4c24109af56c1c9027851e1fc0ae7a2ad22bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22722 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 P5FlTM$akvhSD*d^Rpa9H diff --git a/service.betaseries.com/service.betaseries.com-1.0.14.zip b/service.betaseries.com/service.betaseries.com-1.0.14.zip index 5a798ec5534cc5ff056bda092a771400f064d1fe..e364d11b34137b90a53d68b781fde9c95a4c7205 100644 GIT binary patch delta 505 zcmccD%zX413r~PIGYc032t4bX$fL)eAl4KI#1kE(nYS}FZJd9Yk$HP_-Q-jz3-(B+ zrnnZSrp-&34v7hxHr549XFqo0-a!Ti5Vn}?C?hplYL7A(Cj;}czm0J~-4h)}HnQA0 z$cwP!dvD!jb7OP%g(6LHi$y>RCU+Y9GDDefjYA+zsmXCB5g_K~ohEIpFtHe`I1qF3 zUMnV;&@G!tu(H6Gr_5l6oMRu*!9Yi@cj9FNyL`WkDct41U4HX20VRI~%~xQ0);D=( zu?;iOvy&(8m6^=HI}5BnvBZrT=+nu9r80b|o}B!CcOcWUzmpwH#3vspVPgh)=46R9 z)0*3p4J(v6LPJ;?n1LPx>a=2FzXKH0nOs@w#FPzTCX}&H{s81&gK>kIk{g`?PE0{hfy@Rb&zC?-d2;>%Kc?refK18B_LaI| qN9R{cGnu>v3)vmy1-l>Qr>ui=Ogg_Of2?$yeBmGm8?Ou_FrERzzrJe# delta 11 TcmX?ljOAW4^X7As_YML8BzOib From d84e6834f18fa04fbfba7f6ffdcdae26691ebb63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Physiologie=20des=20Cellules=20Cardiaques=20et=20Vasculair?= =?UTF-8?q?es=20-=20Universit=C3=A9=20de=20Tours?= Date: Mon, 30 Mar 2020 17:57:50 +0200 Subject: [PATCH 11/18] add news to addons.xml --- .../service.betaseries.com-1.0.13.zip | Bin 0 -> 22722 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 service.betaseries.com/service.betaseries.com-1.0.13.zip diff --git a/service.betaseries.com/service.betaseries.com-1.0.13.zip b/service.betaseries.com/service.betaseries.com-1.0.13.zip new file mode 100644 index 0000000000000000000000000000000000000000..6ef4c24109af56c1c9027851e1fc0ae7a2ad22bc GIT binary patch literal 22722 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 P5FlTM$akvhSD*d^Rpa9H literal 0 HcmV?d00001 From c68f6df4e3e8850c59f579f99f8a2ec0435d2efe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Physiologie=20des=20Cellules=20Cardiaques=20et=20Vasculair?= =?UTF-8?q?es=20-=20Universit=C3=A9=20de=20Tours?= Date: Mon, 30 Mar 2020 18:23:02 +0200 Subject: [PATCH 12/18] add news to addons.xml --- .../repository.betaseries-1.0.1.zip | Bin 10466 -> 10471 bytes service.betaseries.com/addon.xml | 11 ++++++++++- .../service.betaseries.com-1.0.14.zip | Bin 74565 -> 24837 bytes 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/repository.betaseries/repository.betaseries-1.0.1.zip b/repository.betaseries/repository.betaseries-1.0.1.zip index 0e774c44e96205aca279d15bf0d2925e01d8aec7..72f630f12a4373551b9c805c2371f41b200d71e8 100644 GIT binary patch delta 593 zcmaD9_&jhzm>2^C2ZM8OUBJxalQ-XFWMKHp%)lVeFnOYeM15jPN`9VRMQ+a0N$2yf z7zi9Ye|NdW&qJ-fFBv%%)kR}hb}$PyHSMtan38PvPx-c{^t?9h@_PyKJ%vGLsjHh@ zin~oe|K9gA?a0x4UkaKPv(mlG;%t%|wiSBa&OK=t7r!>%pu;mtwK{!cin3c-;M$gu zQ;`=|r7-U8w%TbRW?HW%X_&E!QJZ&a{H4?FFIn%&zrG>gbkver{!VY0#I@q^JH58= z4q7Y?aI`&iH9KtWIhJ?Ax9)J<%be}CZM|=>Pgqw0d%gefsX^JVb|p6!q&wZd=J>dW zUqbnk&e}K1n^t+BJU)F6`_HX6UR~iWbqxJ;H|=w0`pK_G8s;AA08g z@NGY<$M>x8z@Zh-o8%)U*Q8AHV*jzM_GFO6ztfu^Y@Z>cYoGRe{Q};?qQ^3dmPSTB zSMMJZ`%`}PiEOg)7XO*|PS>PmM3&xt$#I%5Q`^ilS9u9vV&n6f4(FKGa)0>w=`Gs} ztAha_?<^4Jk(3c(sbi~$F$AEVEe;jD`CaGEjMdq1KvFfmbl9h{pga4wTnILLsK&e z&YdPtXV&NoFHO|CdHJX8f4^&5&t|U*+t08$ktteL1$!!BfP*EC0pK(-`G>kOQyLQ} Vc}#ZI@M4UeJVC>UEmj?*5CFwC2q*vm delta 571 zcmV-B0>u62QQ}dMRt*9G2mqi|cTjjuh9K0DV=jNwKoG{y%~Oo_!i9M00SO`76^&HH z0SQ4ty{^5JWQq5WcE=^=X}EId4f0~l+9fWj3WxgU)y(hv=9?)m_O^ptjLCRciSy!x z0CcU_#%(I``TA=4NG)O98G+YBtSuVfi zmrsA=3w%7*iN6Gka{(dxTca^9r>?XcI^2WxTBC+$fUCEnUYwP?Hf;WyTv2Sc! zj8=+x5C1^>jn+%U!v;}XyoVTR|S zKurQ`AK~Wm{R;Rx!E*7`UXPX0zV}q0ssgApj3BI zcuj^N)Bykh^#cF^9{>OV000000RSKX002;tYa){dC@KMAlQAe`16U9MksTM4t|&7G JSSJ7g002M}1;GFS diff --git a/service.betaseries.com/addon.xml b/service.betaseries.com/addon.xml index 28369e7..45faf10 100644 --- a/service.betaseries.com/addon.xml +++ b/service.betaseries.com/addon.xml @@ -12,6 +12,15 @@ Ce service synchronise automatiquement votre profil BetaSeries.com et votre base XBMC/Kodi all - http://www.betaseries.com/wiki/Plugin%20XBMC + https://support.betaseries.com/article/38-les-applications-betaseries + + v1.0.14 (2020/03/30) + - add compatibility with Netflix addon + - add compatibility with Catchuptv addon + - add pseudo compatibility with themoviedb (not recommended) + - fix search from title + - add some traductions + - change to Betaseries API v3.0 + diff --git a/service.betaseries.com/service.betaseries.com-1.0.14.zip b/service.betaseries.com/service.betaseries.com-1.0.14.zip index e364d11b34137b90a53d68b781fde9c95a4c7205..6e0ebb1cc0fe10898fabfc362b133af3de77c5b9 100644 GIT binary patch delta 862 zcmV-k1EKuI#sr1J0Sr(}0|W{H00000;gXRIE(Yctf?nnvlR@Phv0Donv$oqi4-Q$7 zeoz*wS@VGc001=wlmF@~e<>J(UWOZjUUhg2009K(0{{R7WB>pFeN@42+b|40H(x>M z)E#W6$qvQfxL6Bx7={f4)&aZ979DGoB~_B0cwaxtc9S&7dXq)+@#*o=`Q5%%(4+Ix z=ncC`mkdx>Mo7Kgu%Azl$t?pPxE5R)jT<(gXLrRS=Rz0_Qf!z7_uIOcnmmpl}bZ5dsC213Z3W#o{V=_}oc{ zp3YafY^`wtMiv{kFWV}$LuiaX!C$2}tN5PmLWQrKv>~M?ox;>pP~mTXR!;Qh@;p1~ zp5s2Cj!9sR)M4&Ff9t?N$KXPj(#SDwsao*B*+}1aZA+k_ zcpMCBR@}=(5ThzkIalBZT{X^V`IpBV*vZhqQT;fRJeyH2AlB|RqQ(ZVB8@66nh>o2kdf{-8v1PQ zGP0Pg6lUw&e?*~AxV4J3j*WeCOr^0+XoL)qYurU+_tQqg^=i3VX3KT9UcOsUJc(Na zgl-9_luCwSve!2ZwUYa3sourJIKHQ z!WNSkN=Z#NR1g!>HPkcEGc?hw$}9*C;bdT5_O~%^I}=c&=wx{*HYU{ukZDVQH^%w= znamh1JTcglndN-r#`%XCnf)0nCZ{r4us?IGjFbA^xOoZFAu&ObhPr@^zB~No2@DJ% zjN7JmprOltgAAQ4E5*Td#0_NAgz1fO*X9yq(_~dCfyrf(TI^Y>^>I%xHB59A0l9c` zXsp2Gi<0Kd(R-mnA>UrV*I!o>O%;+TPMU;JKy2`0p&90^vIq5PDY zIS!~kKs}I=?@dNcKt{;<@Xw444F8xXuh-D7|7}|j@^@Tm1vdjD%L`@(29^|H1k?tf z&bw_OU~@cvqr!#cBR5_w)KFn9ZTJ!(qH#gw#Z?fz2-*8MB8iKK^jkGGeS3Z zEWBPX)Xl5rnBKc_!abvcLqUIMF2sD+rBCuT(T(XckfhJ>t)Aw8~+R481uC92d~Q%$L%W@ zsLeg7bZPOy_>WwEpVBH$p5HZnhyRNr!7XvSO}@{sO-QK!qSj#$_U6pQvN<_CAvu5i zcF+7~c6rIh4J~0xoMtEc=Wcc3a(i-gLGstA``SS&!UtO$Ev#;`y#JCvF+btL%ErmR zE7eu!N9Gyi9add@*!Wb%0ukF&|AVw_e$49jcZ!#iO)O(~nZ8HWO0!3DVRoid*RdD7 zClqhE%GP*bx^F_ph5Dyb86HeIrkYtA(#;;57A|NiXjt19Cuq^I;LVq+M?ak$^?uG= zQ-9*jW&4MLPclDDez2WS_o;Z*e5P|z>q{Tqf6n_>wr<^iyN|cIimv;;*`W9HbS9lsv_SP*aeKh4VP`tGaFd48uYr5lPG`U4lw zpYG4OTD+bClmkV8(a*sE$`|$8rto~RTl+UJ)9l90J1plb0F(LT$S5183DbdTTz2x7 zs4Q?cQjB(+yg62KazixR6mSb7~64IG$8RNvnQVnJ*#IgfbI5FkJxWP<+8h|p! zlUKxgFy%IanW}L?O!dt`rpe^BaZXIHLCglGN9{mLd9sB%-{d9nN(!j;3ZQqX+PCtde#Tdf8ge&@Z>%5T)=AVk^)8(lh{1B>@PIWsW7d%4bBTE zqn()8?*N&QJeCb%!t&TP7&n+H`4LbNB#&KzFhP0j*%P2BB##9>1u`3$JYNDSV)NMZ gS3t!Wd2F&yf*g~{Td-7Wf)|s{Z Date: Tue, 31 Mar 2020 11:01:28 +0200 Subject: [PATCH 13/18] Create index.html --- repository.betaseries/index.html | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 repository.betaseries/index.html diff --git a/repository.betaseries/index.html b/repository.betaseries/index.html new file mode 100644 index 0000000..ac3a50d --- /dev/null +++ b/repository.betaseries/index.html @@ -0,0 +1,12 @@ + + + + Index of + + +

repository.betaseries

+ + +
repository.betaseries-1.0.1.zip
+ + From dda06e226c97edee290e4ed6beb794bf5b33d0d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Physiologie=20des=20Cellules=20Cardiaques=20et=20Vasculair?= =?UTF-8?q?es=20-=20Universit=C3=A9=20de=20Tours?= Date: Tue, 28 Jul 2020 17:27:34 +0200 Subject: [PATCH 14/18] Update addons.xml --- addons.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons.xml b/addons.xml index 728b346..08a94d8 100644 --- a/addons.xml +++ b/addons.xml @@ -40,7 +40,7 @@ Synchronization with BetaSeries.com Synchronisation avec BetaSeries.com This service automatically updates your profile on BetaSeries.com when you have finished watching an episode or a movie on Kodi - Ce service met à jour automatiquement votre profil sur le site BetaSeries.com lorsque vous venez de finir de regarder un épisode ou nu film dans Kodi + Ce service met à jour automatiquement votre profil sur le site BetaSeries.com lorsque vous venez de finir de regarder un épisode ou un film dans Kodi all https://support.betaseries.com/article/38-les-applications-betaseries From 638dfec536b9700818f6c96cc91b44e78a74fb3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Physiologie=20des=20Cellules=20Cardiaques=20et=20Vasculair?= =?UTF-8?q?es=20-=20Universit=C3=A9=20de=20Tours?= Date: Tue, 2 Mar 2021 13:01:06 +0100 Subject: [PATCH 15/18] Update addons.xml --- addons.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/addons.xml b/addons.xml index 08a94d8..04d0655 100644 --- a/addons.xml +++ b/addons.xml @@ -93,11 +93,11 @@
- + - https://raw.github.com/PCCV/xbmc-betaseries/master/addons.xml - https://raw.github.com/PCCV/xbmc-betaseries/master/addons.xml.md5 - https://raw.github.com/PCCV/xbmc-betaseries/master/ + https://raw.github.com/PCCV/xbmc-betaseries/leia/addons.xml + https://raw.github.com/PCCV/xbmc-betaseries/leia/addons.xml.md5 + https://raw.github.com/PCCV/xbmc-betaseries/leia/ BetaSeries Add-on Repository From 1a58f3a13d3d5fe102e683118d60e4b9ea06d063 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Physiologie=20des=20Cellules=20Cardiaques=20et=20Vasculair?= =?UTF-8?q?es=20-=20Universit=C3=A9=20de=20Tours?= Date: Tue, 2 Mar 2021 13:01:55 +0100 Subject: [PATCH 16/18] Update addon.xml --- repository.betaseries/addon.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/repository.betaseries/addon.xml b/repository.betaseries/addon.xml index 477b7c8..d94c5c8 100644 --- a/repository.betaseries/addon.xml +++ b/repository.betaseries/addon.xml @@ -1,9 +1,9 @@ - + - https://raw.github.com/PCCV/xbmc-betaseries/master/addons.xml - https://raw.github.com/PCCV/xbmc-betaseries/master/addons.xml.md5 - https://raw.github.com/PCCV/xbmc-betaseries/master + https://raw.github.com/PCCV/xbmc-betaseries/leia/addons.xml + https://raw.github.com/PCCV/xbmc-betaseries/leia/addons.xml.md5 + https://raw.github.com/PCCV/xbmc-betaseries/leia BetaSeries Add-on Repository From 420b981a3400c174de7e985aa60aaeb9a1faa876 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Physiologie=20des=20Cellules=20Cardiaques=20et=20Vasculair?= =?UTF-8?q?es=20-=20Universit=C3=A9=20de=20Tours?= Date: Tue, 2 Mar 2021 13:03:35 +0100 Subject: [PATCH 17/18] Add files via upload --- .../repository.betaseries-1.0.2.zip | Bin 0 -> 10478 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 repository.betaseries/repository.betaseries-1.0.2.zip diff --git a/repository.betaseries/repository.betaseries-1.0.2.zip b/repository.betaseries/repository.betaseries-1.0.2.zip new file mode 100644 index 0000000000000000000000000000000000000000..ec7987ab3c6bce00ea4b230cb20ff18d752f32ae GIT binary patch literal 10478 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 a{>@-OSq=*NpZA9Rd$|3@Go$`z_dftgB*iEI literal 0 HcmV?d00001 From e224aef32f4665c352700fd5d3aedd9bd5586bbd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Physiologie=20des=20Cellules=20Cardiaques=20et=20Vasculair?= =?UTF-8?q?es=20-=20Universit=C3=A9=20de=20Tours?= Date: Wed, 3 Mar 2021 15:06:10 +0100 Subject: [PATCH 18/18] changements pour merge --- addons.xml | 6 +++--- addons.xml.md5 | 2 +- repository.betaseries/addon.xml | 9 ++++++--- repository.betaseries/index.html | 1 + .../repository.betaseries-1.0.2.zip | Bin 10478 -> 10490 bytes 5 files changed, 11 insertions(+), 7 deletions(-) diff --git a/addons.xml b/addons.xml index 04d0655..5cfaf7e 100644 --- a/addons.xml +++ b/addons.xml @@ -95,9 +95,9 @@ - https://raw.github.com/PCCV/xbmc-betaseries/leia/addons.xml - https://raw.github.com/PCCV/xbmc-betaseries/leia/addons.xml.md5 - https://raw.github.com/PCCV/xbmc-betaseries/leia/ + https://raw.github.com/skylex/xbmc-betaseries/leia/addons.xml + https://raw.github.com/skylex/xbmc-betaseries/leia/addons.xml.md5 + https://raw.github.com/skylex/xbmc-betaseries/leia/ BetaSeries Add-on Repository diff --git a/addons.xml.md5 b/addons.xml.md5 index 750504d..cd4784c 100644 --- a/addons.xml.md5 +++ b/addons.xml.md5 @@ -1 +1 @@ -658c16ae3d4fdd5197a4211cea94f2e0 addons.xml +2e28b88b10e7756293f497a3522acb7f addons.xml diff --git a/repository.betaseries/addon.xml b/repository.betaseries/addon.xml index d94c5c8..51e973e 100644 --- a/repository.betaseries/addon.xml +++ b/repository.betaseries/addon.xml @@ -1,9 +1,9 @@ - https://raw.github.com/PCCV/xbmc-betaseries/leia/addons.xml - https://raw.github.com/PCCV/xbmc-betaseries/leia/addons.xml.md5 - https://raw.github.com/PCCV/xbmc-betaseries/leia + https://raw.github.com/skylex/xbmc-betaseries/leia/addons.xml + https://raw.github.com/skylex/xbmc-betaseries/leia/addons.xml.md5 + https://raw.github.com/skylex/xbmc-betaseries/leia BetaSeries Add-on Repository @@ -11,5 +11,8 @@ Ce dépôt contient l'extension BetaSeries.com pour XBMC et permet de la maintenir à jour If it breaks, you get to keep the pieces all + + icon.png + diff --git a/repository.betaseries/index.html b/repository.betaseries/index.html index ac3a50d..538f31c 100644 --- a/repository.betaseries/index.html +++ b/repository.betaseries/index.html @@ -7,6 +7,7 @@

repository.betaseries

+
repository.betaseries-1.0.1.zip
repository.betaseries-1.0.2.zip
diff --git a/repository.betaseries/repository.betaseries-1.0.2.zip b/repository.betaseries/repository.betaseries-1.0.2.zip index ec7987ab3c6bce00ea4b230cb20ff18d752f32ae..4c03f166d0d28f983191c9a450136bcf3e1fa6d1 100644 GIT binary patch delta 597 zcmV-b0;>J)QTkDkS`%(~V^SB(^Wy9Q001Qf0018V0F!|b7k^=7WN&URcx`N@Qp=9i zFc3WNd_~I_E=&waNC-Juu`4a&zy%hGs}px7X5xozXPNLdT)FcH^JBD=A=w=SNRUI6 zM|D+oxy0qc^l*nEYG+IKw0Ob*ZR3=-yOMplz1hBC5RQ{n?Yb)OQA<9Vhy|r7cz>py_?r%!eH_gH5f(;07kuH$ z#7ZWqbbv3~mn?jHeddV3AjPA~+X2XunLLvlbSk#=0=ek0!o zR$U{g<9|1Q{GKLdjW$95XpP~_fp^168xwd8lnE##zS##_I-BEH_(ZTX2XJ-?rDM}e zZ7@`C+HAfKDEIL(jBbD(@zN%HL_Y=LH8vQDavjP$`CcYU!&I`T`Ymtym!x8+m>;R` zv|5#Kg||DZX>*E%FQ5lC5OW8s%@0sZ0|XQR0<&}iSS1c_cw=INQSMQYS`KAsVp0uYHB#UK008|1k!U7=lFy3NKoG{yJ5N#c#fy`61!0jS zi#xC)B8aZywUe$)+Ub9EcgBfN1x z`3=2)yq;d*)k(*GYFIpE;Dg&MiD5lg#oeg!0LDp)5}FZipR#&&QQ{$?&4u8dvZ-Q+ z#o|cusS|{_-lrFG^)Q2dy(cV2ntUbwWpEb)S-tk2w$G zL$Ot%j&yc zMOb!8`>;tU8zJ=w3p`H*Vs6m60Pk*IY=Ev542kCgm0<9Y9FR$*8JBjyY2O7_ZxG~W z@v}dENmFNqHi5pk#BkF;c<<$O`~>MKx70|b*F zC>XPq0z)MZWoTkj4PZ4=-~j*t{R5NcCtU+=0sxU67n5BmN&{pN0F#XnB$Li4CI)0D H00000kZAzW