Skip to content

Instantly share code, notes, and snippets.

@pvilas
Created November 9, 2015 12:19
Show Gist options
  • Save pvilas/834b98435c84038a6a3e to your computer and use it in GitHub Desktop.
Save pvilas/834b98435c84038a6a3e to your computer and use it in GitHub Desktop.
Interface amb telefonia
#!/usr/bin/env python
# -*- coding: utf-8 -*-
__author__ = 'pvilas'
import telnetlib
import time
import StringIO
STX=chr(02) # start of text
ETX=chr(03) # end of text
TIMEOUT = .2
# make command, posa trames de inici i fi
def mk(s):
return STX+s+ETX
# format de data i hora
ftDate='{yy}{mm}{dd}'
ftTime='{hh}{mm}{ss}'
# llista d'habitacions
def llegir(to):
return telnet.read_until('aadfas', to)
# envia comandament
def send(command):
try:
# comprovam que la coua estigui buida
#telnet.read_until(ETX, .05)
llegir(.05)
print '=> '+command
telnet.write(mk(command))
except Exception, e:
print "ERROR send: "+e.message
raise
# espera resposta i llegeix
def rec(to=TIMEOUT):
try:
r=llegir(to) #telnet.read_until(ETX, to)
print "<= "+r
return r
except Exception, e:
print "ERROR: "+e.message
# torna la data estil FIAS
def putFIASDate():
return time.strftime("%y%m%d")
def putFIASTime():
return time.strftime("%H%M%S")
# ---------------------------------------------
# Comandaments d'enllaç
# ---------------------------------------------
# link start, inicia les telecomunicacions
def LS():
try:
# Link start
LSc='LS|DA{Date}|TI{Time}|' # link start
LDc='LD|DA{Date}|TI{Time}|V#2.0.4|IFPB|'
send(LSc.format(Date=putFIASDate(), Time=putFIASTime()))
rec()
send(LDc.format(Date=putFIASDate(), Time=putFIASTime()))
send('LR|RIGI|FLRNGNGFGAGDGLGVG#GSSF|')
send('LR|RIGC|FLRNGNGFGAGDGLROGVG#GS|')
send('LR|RIGO|FLRNG#GSSF|')
send('LR|RIRE|FLRNCSMLDNRS|')
send('LR|RIWR|FLRNDATI|')
send('LR|RIWC|FLRNDATI|')
send('LR|RIWA|FLRNDATIAS|')
#send('LR|RIPS|FLRNDATIDDDUPTTAMAM#35#|')
send('LR|RIPS|FLRNDATIDDDUPTTAMAM#|')
send('LR|RIPA|FLRNDATIAS|')
send('LR|RIRE|FLRNCSMLDNGNGF|')
#time.sleep(2)
#rec()
LA() # imprescindible
except Exception, e:
print "ERROR: "+e.message
"""
RN, DA, TI, DD, DU, PT=PostType, TA=Total Amount, MA = Minibar Article
MinibarArtNum
FLRN DA TI DD DU PT TA MA M#35 #
"""
# Link Alive
def LA():
try:
send('LA|DA{Date}|TI{Time}|'.format(Date=putFIASDate(), Time=putFIASTime()))
r=rec(.5)
if r:
return True
else:
return False
except Exception, e:
print "ERROR LA"+e.message
return False
# Link End
def LE():
# fi de sessió (tancar) - link End
send('LE|DA{Date}|TI{Time}|'.format(Date=putFIASDate(), Time=putFIASTime()))
rec()
# el comandament no té resposta
# petició de sincronització - Data Resync
def DR():
# petició de sincronització
"""
send('DR|DA{Date}|TI{Time}|RN{RoomNum}|RT{RequestType}|'.format(
Date=putFIASDate(),
Time=putFIASTime(),
RoomNum=rn,
RequestType=ty))
"""
output=StringIO.StringIO()
try:
send('DR|DA{Date}|TI{Time}|'.format(
Date=putFIASDate(),
Time=putFIASTime()))
output.write(telnet.read_until('DE|', 120))
r=output.getvalue()
parseaDR(r)
except Exception, e:
print "ERROR DR: "+e.message
finally:
output.close()
def getToken(camps, camp):
""" torna el valor del camp """
for w in camps: # per cada cadena
if w.startswith(camp.upper()): # si comença per el token
return w[2:] # retornam la resta de la cadena
return None
def getKey(item):
# per ordenar ses habitacions
return item['hab']
def parseaDR(r):
#prova='GO|RN8415|RE|RN2415|CS0|DNN|GO|RN2415|RE|RN8416|CS0|DNN|GO|RN8416|RE|RN2416|CS0|DNN|GO|RN2416|RE|RN8417|CS0|DNN|GO|RN8417|RE|RN2417|CS0|DNN|GO|RN2417|RE|RN8418|CS0|DNN|GO|RN8418|RE|RN2418|CS0|DNN|GO|RN2418|RE|RN8419|CS0|DNN|GO|RN8419|RE|RN2419|CS0|DNN|GO|RN2419|RE|RN8420|CS0|DNN|GO|RN8420|RE|RN2420|CS0|DNN|GO|RN2420|RE|RN8421|CS0|DNN|GO|RN8421|RE|RN2421|CS0|DNN|GO|RN2421|RE|RN8422|CS0|DNN|GO|RN8422|RE|RN2422|CS0|DNN|GO|RN2422|RE|RN8423|CS0|DNN|GO|RN8423|RE|RN2423|CS0|DNN|GO|RN2423|RE|RN8424|CS0|DNN|GO|RN8424|RE|RN2424|CS0|DNN|GO|RN2424|RE|RN8425|CS0|DNN|GO|RN8425|RE|RN2425|CS0|DNN|GO|RN2425|RE|RN8426|CS0|DNN|GO|RN8426|RE|RN2426|CS0|DNN|GO|RN2426|RE|RN8427|CS0|DNN|GO|RN8427|RE|RN2427|CS0|DNN|GO|RN2427|RE|RN8428|CS0|DNN|GO|RN8428|RE|RN2428|CS0|DNN|GO|RN2428|RE|RN8429|CS0|DNN|GO|RN8429|RE|RN2429|CS0|DNN|GO|RN2429|RE|RN8430|CS0|DNN|GO|RN8430|RE|RN2430|CS0|DNN|GO|RN2430|RE|RN8433|CS0|DNN|GO|RN8433|RE|RN2433|CS0|DNN|GO|RN2433|RE|RN8435|CS0|DNN|GO|RN8435|RE|RN2435|CS0|DNN|GO|RN2435|RE|RN8436|CS0|DNN|GO|RN8436|RE|RN2436|CS0|DNN|GO|RN2436|RE|RN8434|CS0|DNN|GO|RN8434|RE|RN2434|CS0|DNN|GO|RN2434|RE|RN8504|CS0|DNN|GO|RN8504|RE|RN2504|CS0|DNN|GO|RN2504|RE|RN8505|CS0|DNN|GO|RN8505|RE|RN2505|CS0|DNN|GO|RN2505|RE|RN8506|CS0|DNN|GO|RN8506|RE|RN2506|CS0|DNN|GO|RN2506|RE|RN8507|CS0|DNN|GO|RN8507|RE|RN2507|CS0|DNN|GO|RN2507|RE|RN8508|CS0|DNN|GO|RN8508|RE|RN2508|CS0|DNN|GO|RN2508|RE|RN8509|CS0|DNN|GO|RN8509|RE|RN2509|CS0|DNN|GO|RN2509|RE|RN8510|CS0|DNN|GO|RN8510|RE|RN2510|CS0|DNN|GO|RN2510|RE|RN8511|CS0|DNN|GO|RN8511|RE|RN2511|CS0|DNN|GO|RN2511|RE|RN8512|CS0|DNN|GO|RN8512|RE|RN2512|CS0|DNN|GO|RN2512|RE|RN8514|CS0|DNN|GO|RN8514|RE|RN2514|CS0|DNN|GO|RN2514|RE|RN8516|CS0|DNN|GO|RN8516|RE|RN2516|CS0|DNN|GO|RN2516|RE|RN8131|CS0|DNN|GO|RN8131|RE|RN2131|CS0|DNN|GO|RN2131|RE|RN8132|CS0|DNN|GO|RN8132|RE|RN2132|CS0|DNN|GO|RN2132|RE|RN8231|CS0|DNN|GO|RN8231|RE|RN2231|CS0|DNN|GO|RN2231|RE|RN2232|CS0|DNN|GO|RN2232|RE|RN8232|CS0|DNN|GO|RN8232|RE|RN2331|CS0|DNN|GO|RN2331|RE|RN8331|CS0|DNN|GO|RN8331|RE|RN2332|CS0|DNN|GO|RN2332|RE|RN8332|CS0|DNN|GO|RN8332|RE|RN2431|CS0|DNN|GO|RN2431|RE|RN8431|CS0|DNN|GO|RN8431|RE|RN2432|CS0|DNN|GO|RN2432|RE|RN8432|CS0|DNN|GO|RN8432|RE|GO|RNP511|RE|GO|RNP512|RE|GO|RNP514|RE|GO|RNP515|RE|GO|RNP516|RE|GO|RNPGSVF|RE|RN8437|CS0|DNN|GO|RN8437|RE|RN2437|CS0|DNN|GO|RN2437|RE|RN8438|CS0|DNN|GO|RN8438|RE|RN2438|CS0|DNN|GO|RN2438|RE|RN8515|CS0|DNN|GO|RN8515|RE|RN2515|CS0|DNN|GO|RN2515|RE|RN8501|CS0|DNN|GO|RN8501|RE|RN2501|CS0|DNN|GO|RN2501|RE|RN8101|CS0|DNN|GO|RN8101|RE|RN2101|CS0|DNN|GO|RN2101|RE|RN2102|CS0|DNN|GO|RN2102|RE|RN8102|CS0|DNN|GO|RN8102|RE|RN2103|CS0|DNN|GO|RN2103|RE|RN8103|CS0|DNN|GO|RN8103|RE|RN2104|CS0|DNN|GO|RN2104|RE|RN8104|CS0|DNN|GO|RN8104|RE|RN2105|CS0|DNN|GO|RN2105|RE|RN8105|CS0|DNN|GO|RN8105|RE|RN2106|CS0|DNN|GO|RN2106|RE|RN8106|CS0|DNN|GO|RN8106|RE|RN2107|CS0|DNN|GO|RN2107|RE|RN8107|CS0|DNN|GO|RN8107|RE|RN2108|CS0|DNN|GO|RN2108|RE|RN8108|CS0|DNN|GO|RN8108|RE|RN2109|CS0|DNN|GO|RN2109|RE|RN8109|CS0|DNN|GO|RN8109|RE|RN2110|CS0|DNN|GO|RN2110|RE|RN8110|CS0|DNN|GO|RN8110|RE|RN2138|CS0|DNN|GO|RN2138|RE|RN8138|CS0|DNN|GO|RN8138|RE|RN8502|CS0|DNN|GO|RN8502|RE|RN2502|CS0|DNN|GO|RN2502|RE|RN8503|CS0|DNN|GO|RN8503|RE|RN2503|CS0|DNN|GO|RN2503|RE|GO|RNP410|RE|GO|RNP411|RE|GO|RNP412|RE|GO|RNP414|RE|GO|RNP415|RE|GO|RNP416|RE|GO|RNP417|RE|GO|RNP418|RE|GO|RNP419|RE|GO|RNP420|RE|GO|RNP421|RE|GO|RNP422|RE|GO|RNP423|RE|GO|RNP424|RE|GO|RNP425|RE|GO|RNP426|RE|GO|RNP427|RE|GO|RNP428|RE|GO|RNP429|RE|GO|RNP430|RE|GO|RNP431|RE|GO|RNP432|RE|GO|RNP433|RE|GO|RNP434|RE|GO|RNP435|RE|GO|RNP436|RE|GO|RNP437|RE|GO|RNP438|RE|GO|RNP501|RE|GO|RNP502|RE|GO|RNP503|RE|GO|RNP504|RE|GO|RNP505|RE|GO|RNP506|RE|GO|RNP507|RE|GO|RNP508|RE|GO|RNP509|RE|GO|RNP510|RE|RN8439|CS0|DNN|GO|RN8439|RE|RN2439|CS0|DNN|GO|RN2439|RE|RN8440|CS0|DNN|GO|RN8440|RE|RN2440|CS0|DNN|GO|RN2440|RE|RN8224|CS0|DNN|GO|RN8224|RE|RN2224|CS0|DNN|GO|RN2224|RE|RN8111|CS0|DNN|GO|RN8111|RE|RN2111|CS0|DNN|GO|RN2111|RE|RN8112|CS0|DNN|GO|RN8112|RE|RN2112|CS0|DNN|GO|RN2112|RE|GO|RNP101|RE|RN8114|CS0|DNN|GO|RN8114|RE|RN2114|CS0|DNN|GO|RN2114|RE|RN8115|CS0|DNN|GO|RN8115|RE|RN2115|CS0|DNN|GO|RN2115|RE|RN8116|CS0|DNN|GO|RN8116|RE|RN2116|CS0|DNN|GO|RN2116|RE|RN8117|CS0|DNN|GO|RN8117|RE|RN2117|CS0|DNN|GO|RN2117|RE|RN8118|CS0|DNN|GO|RN8118|RE|RN2118|CS0|DNN|GO|RN2118|RE|RN8119|CS0|DNN|GO|RN8119|RE|RN2119|CS0|DNN|GO|RN2119|RE|RN8125|CS0|DNN|GO|RN8125|RE|RN2125|CS0|DNN|GO|RN2125|RE|RN8126|CS0|DNN|GO|RN8126|RE|RN2126|CS0|DNN|GO|RN2126|RE|RN8127|CS0|DNN|GO|RN8127|RE|RN2127|CS0|DNN|GO|RN2127|RE|RN8128|CS0|DNN|GO|RN8128|RE|RN2128|CS0|DNN|GO|RN2128|RE|RN8129|CS0|DNN|GO|RN8129|RE|RN2129|CS0|DNN|GO|RN2129|RE|RN8130|CS0|DNN|GO|RN8130|RE|RN2130|CS0|DNN|GO|RN2130|RE|RN8133|CS0|DNN|GO|RN8133|RE|RN2133|CS0|DNN|GO|RN2133|RE|RN8134|CS0|DNN|GO|RN8134|RE|RN2134|CS0|DNN|GO|RN2134|RE|RN8135|CS0|DNN|GO|RN8135|RE|RN2135|CS0|DNN|GO|RN2135|RE|RN8136|CS0|DNN|GO|RN8136|RE|RN2136|CS0|DNN|GO|RN2136|RE|RN8137|CS0|DNN|GO|RN8137|RE|RN2137|CS0|DNN|GO|RN2137|RE|RN8201|CS0|DNN|GO|RN8201|RE|RN2201|CS0|DNN|GO|RN2201|RE|RN8202|CS0|DNN|GO|RN8202|RE|RN2202|CS0|DNN|GO|RN2202|RE|RN8203|CS0|DNN|GO|RN8203|RE|RN2203|CS0|DNN|GO|RN2203|RE|RN8204|CS0|DNN|GO|RN8204|RE|RN2204|CS0|DNN|GO|RN2204|RE|RN8205|CS0|DNN|GO|RN8205|RE|RN2205|CS0|DNN|GO|RN2205|RE|RN8206|CS0|DNN|GO|RN8206|RE|RN2206|CS0|DNN|GO|RN2206|RE|RN8207|CS0|DNN|GO|RN8207|RE|RN2207|CS0|DNN|GO|RN2207|RE|RN8208|CS0|DNN|GO|RN8208|RE|RN2208|CS0|DNN|GO|RN2208|RE|RN8209|CS0|DNN|GO|RN8209|RE|RN2209|CS0|DNN|GO|RN2209|RE|RN8210|CS0|DNN|GO|RN8210|RE|RN2210|CS0|DNN|GO|RN2210|RE|RN8211|CS0|DNN|GO|RN8211|RE|RN2211|CS0|DNN|GO|RN2211|RE|RN8212|CS0|DNN|GO|RN8212|RE|RN2212|CS0|DNN|GO|RN2212|RE|RN8515|CS0|DNN|GO|RN8515|RE|RN2515|CS0|DNN|GO|RN2515|RE|RN8516|CS0|DNN|GO|RN8516|RE|RN2516|CS0|DNN|GO|RN2516|RE|RN8214|CS0|DNN|GO|RN8214|RE|RN2214|CS0|DNN|GO|RN2214|RE|RN8215|CS0|DNN|GO|RN8215|RE|RN2215|CS0|DNN|GO|RN2215|RE|RN8216|CS0|DNN|GO|RN8216|RE|RN2216|CS0|DNN|GO|RN2216|RE|RN8217|CS0|DNN|GO|RN8217|RE|RN2217|CS0|DNN|GO|RN2217|RE|RN8218|CS0|DNN|GO|RN8218|RE|RN2218|CS0|DNN|GO|RN2218|RE|RN8219|CS0|DNN|GO|RN8219|RE|RN2219|CS0|DNN|GO|RN2219|RE|GO|RNP102|RE|GO|RNP103|RE|GO|RNP104|RE|GO|RNP105|RE|GO|RNP106|RE|GO|RNP107|RE|GO|RNP108|RE|GO|RNP109|RE|GO|RNP110|RE|GO|RNP111|RE|GO|RNP112|RE|GO|RNP114|RE|GO|RNP115|RE|GO|RNP116|RE|GO|RNP117|RE|GO|RNP118|RE|GO|RNP119|RE|GO|RNP125|RE|GO|RNP126|RE|GO|RNP127|RE|RN8440|CS0|DNN|GO|RN8440|RE|RN2440|CS0|DNN|GO|RN2440|RE|RN8439|CS0|DNN|GO|RN8439|RE|RN2439|CS0|DNN|GO|RN2439|RE|GO|RNP128|RE|GO|RNP129|RE|GO|RNP130|RE|GO|RNP131|RE|GO|RNP132|RE|GO|RNP133|RE|GO|RNP134|RE|GO|RNP135|RE|GO|RNP136|RE|GO|RNP137|RE|GO|RNP138|RE|GO|RNP201|RE|GO|RNP202|RE|GO|RNP203|RE|GO|RNP204|RE|GO|RNP205|RE|GO|RNP206|RE|GO|RNP207|RE|RN8220|CS0|DNN|GO|RN8220|RE|RN2220|CS0|DNN|GO|RN2220|RE|RN8221|CS0|DNN|GO|RN8221|RE|RN2221|CS0|DNN|GO|RN2221|RE|RN8222|CS0|DNN|GO|RN8222|RE|RN2222|CS0|DNN|GO|RN2222|RE|RN8223|CS0|DNN|GO|RN8223|RE|RN2223|CS0|DNN|GO|RN2223|RE|RN8225|CS0|DNN|GO|RN8225|RE|RN2225|CS0|DNN|GO|RN2225|RE|RN8226|CS0|DNN|GO|RN8226|RE|RN2226|CS0|DNN|GO|RN2226|RE|RN8227|CS0|DNN|GO|RN8227|RE|RN2227|CS0|DNN|GO|RN2227|RE|RN8228|CS0|DNN|GO|RN8228|RE|RN2228|CS0|DNN|GO|RN2228|RE|RN8229|CS0|DNN|GO|RN8229|RE|RN2229|CS0|DNN|GO|RN2229|RE|RN8230|CS0|DNN|GO|RN8230|RE|RN2230|CS0|DNN|GO|RN2230|RE|RN8233|CS0|DNN|GO|RN8233|RE|RN2233|CS0|DNN|GO|RN2233|RE|RN8234|CS0|DNN|GO|RN8234|RE|RN2234|CS0|DNN|GO|RN2234|RE|RN8235|CS0|DNN|GO|RN8235|RE|RN2235|CS0|DNN|GO|RN2235|RE|RN8236|CS0|DNN|GO|RN8236|RE|RN2236|CS0|DNN|GO|RN2236|RE|RN8237|CS0|DNN|GO|RN8237|RE|RN2237|CS0|DNN|GO|RN2237|RE|RN8238|CS0|DNN|GO|RN8238|RE|RN2238|CS0|DNN|GO|RN2238|RE|RN8301|CS0|DNN|GO|RN8301|RE|RN2301|CS0|DNN|GO|RN2301|RE|RN8302|CS0|DNN|GO|RN8302|RE|RN2302|CS0|DNN|GO|RN2302|RE|RN8303|CS0|DNN|GO|RN8303|RE|RN2303|CS0|DNN|GO|RN2303|RE|RN8304|CS0|DNN|GO|RN8304|RE|RN2304|CS0|DNN|GO|RN2304|RE|RN8305|CS0|DNN|GO|RN8305|RE|RN2305|CS0|DNN|GO|RN2305|RE|RN8306|CS0|DNN|GO|RN8306|RE|RN2306|CS0|DNN|GO|RN2306|RE|RN8307|CS0|DNN|GO|RN8307|RE|RN2307|CS0|DNN|GO|RN2307|RE|RN8308|CS0|DNN|GO|RN8308|RE|RN2308|CS0|DNN|GO|RN2308|RE|RN8309|CS0|DNN|GO|RN8309|RE|RN2309|CS0|DNN|GO|RN2309|RE|RN8310|CS0|DNN|GO|RN8310|RE|RN2310|CS0|DNN|GO|RN2310|RE|RN8311|CS0|DNN|GO|RN8311|RE|RN2311|CS0|DNN|GO|RN2311|RE|GO|RNP208|RE|GO|RNP209|RE|GO|RNP210|RE|GO|RNP211|RE|GO|RNP212|RE|GO|RNP214|RE|GO|RNP215|RE|GO|RNP216|RE|GO|RNP217|RE|GO|RNP218|RE|GO|RNP219|RE|GO|RNP220|RE|GO|RNP221|RE|GO|RNP222|RE|GO|RNP223|RE|GO|RNP224|RE|GO|RNP225|RE|GO|RNP226|RE|GO|RNP227|RE|GO|RNP228|RE|GO|RNP229|DE|'''
#RE|GO|RNP307|GSN|SF|RE|GO|RNP308|GSN|SF|RE|RN8312|CS0|DNN|GO|RN8312|GSN|SF|RE|RN2312|CS0|DNN|GO|RN2312|GSN|SF|RE|RN8314|CS0|DNN|GO|RN8314|GSN|SF|RE|RN2314|CS0|DNN|GO|RN2314|GSN|SF|RE|RN8315|CS0|DNN|GO|RN8315|GSN|SF|RE|RN2315|CS0|DNN|GO|RN2315|GSN|SF|RE|RN8316|CS0|DNN|GO|RN8316|GSN|SF|RE|RN2316|CS0|DNN|GO|RN2316|GSN|SF|RE|RN8317|CS0|DNN|GO|RN8317|GSN|SF|RE|RN2317|CS0|DNN|GO|RN2317|GSN|SF|RE|RN8318|CS0|DNN|GO|RN8318|GSN|SF|RE|RN2318|CS0|DNN|GO|RN2318|GSN|SF|RE|RN8319|CS0|DNN|GO|RN8319|GSN|SF|RE|RN2319|CS0|DNN|GO|RN2319|GSN|SF|RE|RN8320|CS0|DNN|GO|RN8320|GSN|SF|RE|RN2320|CS0|DNN|GO|RN2320|GSN|SF|RE|RN8321|CS0|DNN|GO|RN8321|GSN|SF|RE|RN2321|CS0|DNN|GO|RN2321|GSN|SF|RE|RN8322|CS0|DNN|GO|RN8322|GSN|SF|RE|RN2322|CS0|DNN|GO|RN2322|GSN|SF|RE|RN8323|CS0|DNN|GO|RN8323|GSN|SF|RE|RN2323|CS0|DNN|GO|RN2323|GSN|SF|RE|RN8324|CS0|DNN|GO|RN8324|GSN|SF|RE|RN2324|CS0|DNN|GO|RN2324|GSN|SF|RE|RN8325|CS0|DNN|GO|RN8325|GSN|SF|RE|RN2325|CS0|DNN|GO|RN2325|GSN|SF|RE|RN8326|CS0|DNN|GO|RN8326|GSN|SF|RE|RN2326|CS0|DNN|GO|RN2326|GSN|SF|RE|RN8327|CS0|DNN|GO|RN8327|GSN|SF|RE|RN2327|CS0|DNN|GO|RN2327|GSN|SF|RE|RN8328|CS0|DNN|GO|RN8328|GSN|SF|RE|RN2328|CS0|DNN|GO|RN2328|GSN|SF|RE|RN8329|CS0|DNN|GO|RN8329|GSN|SF|RE|RN2329|CS0|DNN|GO|RN2329|GSN|SF|RE|RN8330|CS0|DNN|GO|RN8330|GSN|SF|RE|RN2330|CS0|DNN|GO|RN2330|GSN|SF|RE|RN8333|CS0|DNN|GO|RN8333|GSN|SF|RE|RN2333|CS0|DNN|GO|RN2333|GSN|SF|RE|RN8334|CS0|DNN|GO|RN8334|GSN|SF|RE|RN2334|CS0|DNN|GO|RN2334|GSN|SF|RE|RN8335|CS0|DNN|GO|RN8335|GSN|SF|RE|RN2335|CS0|DNN|GO|RN2335|GSN|SF|RE|RN8336|CS0|DNN|GO|RN8336|GSN|SF|RE|RN2336|CS0|DNN|GO|RN2336|GSN|SF|RE|RN8337|CS0|DNN|GO|RN8337|GSN|SF|RE|RN2337|CS0|DNN|GO|RN2337|GSN|SF|RE|RN8338|CS0|DNN|GO|RN8338|GSN|SF|RE|RN2338|CS0|DNN|GO|RN2338|GSN|SF|RE|RN8401|CS0|DNN|GO|RN8401|GSN|SF|RE|RN2401|CS0|DNN|GO|RN2401|GSN|SF|RE|RN8402|CS0|DNN|GO|RN8402|GSN|SF|RE|RN2402|CS0|DNN|GO|RN2402|GSN|SF|RE|RN8403|CS0|DNN|GO|RN8403|GSN|SF|RE|RN2403|CS0|DNN|GO|RN2403|GSN|SF|RE|RN8404|CS0|DNN|GO|RN8404|GSN|SF|RE|RN2404|CS0|DNN|GO|RN2404|GSN|SF|RE|RN8405|CS0|DNN|GO|RN8405|GSN|SF|RE|RN2405|CS0|DNN|GO|RN2405|GSN|SF|RE|RN8406|CS0|DNN|GO|RN8406|GSN|SF|RE|RN2406|CS0|DNN|GO|RN2406|GSN|SF|RE|RN8407|CS0|DNN|GO|RN8407|GSN|SF|RE|RN2407|CS0|DNN|GO|RN2407|GSN|SF|RE|RN8408|CS0|DNN|GO|RN8408|GSN|SF|RE|RN2408|CS0|DNN|GO|RN2408|GSN|SF|RE|RN8409|CS0|DNN|GO|RN8409|GSN|SF|RE|RN2409|CS0|DNN|GO|RN2409|GSN|SF|RE|RN8410|CS0|DNN|GO|RN8410|GSN|SF|RE|RN2410|CS0|DNN|GO|RN2410|GSN|SF|RE|RN8411|CS0|DNN|GO|RN8411|GSN|SF|RE|RN2411|CS0|DNN|GO|RN2411|GSN|SF|RE|RN8412|CS0|DNN|GO|RN8412|GSN|SF|RE|RN2412|CS0|DNN|GO|RN2412|GSN|SF|RE|RN8414|CS0|DNN|GO|RN8414|GSN|SF|RE|RN2414|CS0|DNN|GO|RN2414|GSN|SF|RE|GO|RNP309|GSN|SF|RE|GO|RNP310|GSN|SF|RE|GO|RNP311|GSN|SF|RE|GO|RNP312|GSN|SF|RE|GO|RNP314|GSN|SF|RE|GO|RNP315|GSN|SF|RE|GO|RNP316|GSN|SF|RE|GO|RNP317|GSN|SF|RE|GO|RNP318|GSN|SF|RE|GO|RNP319|GSN|SF|RE|GO|RNP320|GSN|SF|RE|GO|RNP321|GSN|SF|RE|GO|RNP322|GSN|SF|RE|GO|RNP323|GSN|SF|RE|GO|RNP324|GSN|SF|RE|GO|RNP325|GSN|SF|RE|GO|RNP326|GSN|SF|RE|GO|RNP327|GSN|SF|RE|GO|RNP328|GSN|SF|RE|GO|RNP329|GSN|SF|RE|GO|RNP330|GSN|SF|RE|GO|RNP331|GSN|SF|RE|GO|RNP332|GSN|SF|RE|GO|RNP333|GSN|SF|RE|GO|RNP334|GSN|SF|RE|GO|RNP335|GSN|SF|RE|GO|RNP336|GSN|SF|RE|GO|RNP337|GSN|SF|RE|GO|RNP338|GSN|SF|RE|GO|RNP401|GSN|SF|RE|GO|RNP402|GSN|SF|RE|GO|RNP403|GSN|SF|RE|GO|RNP404|GSN|SF|RE|GO|RNP405|GSN|SF|RE|GO|RNP406|GSN|SF|RE|GO|RNP407|GSN|SF|RE|GO|RNP408|GSN|SF|RE|GO|RNP409|GSN|SF|RE|RN8415|CS0|DNN|GO|RN8415|GSN|SF|RE|RN2415|CS0|DNN|GO|RN2415|GSN|SF|RE|RN8416|CS0|DNN|GO|RN8416|GSN|SF|RE|RN2416|CS0|DNN|GO|RN2416|GSN|SF|RE|RN8417|CS0|DNN|GO|RN8417|GSN|SF|RE|RN2417|CS0|DNN|GO|RN2417|GSN|SF|RE|RN8418|CS0|DNN|GO|RN8418|GSN|SF|RE|RN2418|CS0|DNN|GO|RN2418|GSN|SF|RE|RN8419|CS0|DNN|GO|RN8419|GSN|SF|RE|RN2419|CS0|DNN|GO|RN2419|GSN|SF|RE|RN8420|CS0|DNN|GO|RN8420|GSN|SF|RE|RN2420|CS0|DNN|GO|RN2420|GSN|SF|RE|RN8421|CS0|DNN|GO|RN8421|GSN|SF|RE|RN2421|CS0|DNN|GO|RN2421|GSN|SF|RE|RN8422|CS0|DNN|GO|RN8422|GSN|SF|RE|RN2422|CS0|DNN|GO|RN2422|GSN|SF|RE|RN8423|CS0|DNN|GO|RN8423|GSN|SF|RE|RN2423|CS0|DNN|GO|RN2423|GSN|SF|RE|RN8424|CS0|DNN|GO|RN8424|GSN|SF|RE|RN2424|CS0|DNN|GO|RN2424|GSN|SF|RE|RN8425|CS0|DNN|GO|RN8425|GSN|SF|RE|RN2425|CS0|DNN|GO|RN2425|GSN|SF|RE|RN8426|CS0|DNN|GO|RN8426|GSN|SF|RE|RN2426|CS0|DNN|GO|RN2426|GSN|SF|RE|RN8427|CS0|DNN|GO|RN8427|GSN|SF|RE|RN2427|CS0|DNN|GO|RN2427|GSN|SF|RE|RN8428|CS0|DNN|GO|RN8428|GSN|SF|RE|RN2428|CS0|DNN|GO|RN2428|GSN|SF|RE|RN8429|CS0|DNN|GO|RN8429|GSN|SF|RE|RN2429|CS0|DNN|GO|RN2429|GSN|SF|RE|RN8430|CS0|DNN|GO|RN8430|GSN|SF|RE|RN2430|CS0|DNN|GO|RN2430|GSN|SF|RE|RN8433|CS0|DNN|GO|RN8433|GSN|SF|RE|RN2433|CS0|DNN|GO|RN2433|GSN|SF|RE|RN8435|CS0|DNN|GO|RN8435|GSN|SF|RE|RN2435|CS0|DNN|GO|RN2435|GSN|SF|RE|RN8436|CS0|DNN|GO|RN8436|GSN|SF|RE|RN2436|CS0|DNN|GO|RN2436|GSN|SF|RE|RN8434|CS0|DNN|GO|RN8434|GSN|SF|RE|RN2434|CS0|DNN|GO|RN2434|GSN|SF|RE|RN8504|CS0|DNN|GO|RN8504|GSN|SF|RE|RN2504|CS0|DNN|GO|RN2504|GSN|SF|RE|RN8505|CS0|DNN|GO|RN8505|GSN|SF|RE|RN2505|CS0|DNN|GO|RN2505|GSN|SF|RE|RN8506|CS0|DNN|GO|RN8506|GSN|SF|RE|RN2506|CS0|DNN|GO|RN2506|GSN|SF|RE|RN8507|CS0|DNN|GO|RN8507|GSN|SF|RE|RN2507|CS0|DNN|GO|RN2507|GSN|SF|RE|RN8508|CS0|DNN|GO|RN8508|GSN|SF|RE|RN2508|CS0|DNN|GO|RN2508|GSN|SF|RE|RN8509|CS0|DNN|GO|RN8509|GSN|SF|RE|RN2509|CS0|DNN|GO|RN2509|GSN|SF|RE|RN8510|CS0|DNN|GO|RN8510|GSN|SF|RE|RN2510|CS0|DNN|GO|RN2510|GSN|SF|RE|RN8511|CS0|DNN|GO|RN8511|GSN|SF|RE|RN2511|CS0|DNN|GO|RN2511|GSN|SF|RE|RN8512|CS0|DNN|GO|RN8512|GSN|SF|RE|RN2512|CS0|DNN|GO|RN2512|GSN|SF|RE|RN8514|CS0|DNN|GO|RN8514|GSN|SF|RE|RN2514|CS0|DNN|GO|RN2514|GSN|SF|RE|RN8516|CS0|DNN|GO|RN8516|GSN|SF|RE|RN2516|CS0|DNN|GO|RN2516|GSN|SF|RE|RN8131|CS0|DNN|GO|RN8131|GSN|SF|RE|RN2131|CS0|DNN|GO|RN2131|GSN|SF|RE|RN8132|CS0|DNN|GO|RN8132|GSN|SF|RE|RN2132|CS0|DNN|GO|RN2132|GSN|SF|RE|RN8231|CS0|DNN|GO|RN8231|GSN|SF|RE|RN2231|CS0|DNN|GO|RN2231|GSN|SF|RE|RN2232|CS0|DNN|GO|RN2232|GSN|SF|RE|RN8232|CS0|DNN|GO|RN8232|GSN|SF|RE|RN2331|CS0|DNN|GO|RN2331|GSN|SF|RE|RN8331|CS0|DNN|GO|RN8331|GSN|SF|RE|RN2332|CS0|DNN|GO|RN2332|GSN|SF|RE|RN8332|CS0|DNN|GO|RN8332|GSN|SF|RE|RN2431|CS0|DNN|GO|RN2431|GSN|SF|RE|RN8431|CS0|DNN|GO|RN8431|GSN|SF|RE|RN2432|CS0|DNN|GO|RN2432|GSN|SF|RE|RN8432|CS0|DNN|GO|RN8432|GSN|SF|RE|GO|RNP511|GSN|SF|RE|GO|RNP512|GSN|SF|RE|GO|RNP514|GSN|SF|RE|GO|RNP515|GSN|SF|RE|GO|RNP516|GSN|SF|RE|GO|RNPGSVF|GSN|SF|RE|RN8437|CS0|DNN|GO|RN8437|GSN|SF|RE|RN2437|CS0|DNN|GO|RN2437|GSN|SF|RE|RN8438|CS0|DNN|GO|RN8438|GSN|SF|RE|RN2438|CS0|DNN|GO|RN2438|GSN|SF|RE|RN8515|CS0|DNN|GO|RN8515|GSN|SF|RE|RN2515|CS0|DNN|GO|RN2515|GSN|SF|RE|RN8501|CS0|DNN|GO|RN8501|GSN|SF|RE|RN2501|CS0|DNN|GO|RN2501|GSN|SF|RE|RN8101|CS0|DNN|GO|RN8101|GSN|SF|RE|RN2101|CS0|DNN|GO|RN2101|GSN|SF|RE|RN2102|CS0|DNN|GO|RN2102|GSN|SF|RE|RN8102|CS0|DNN|GO|RN8102|GSN|SF|RE|RN2103|CS0|DNN|GO|RN2103|GSN|SF|RE|RN8103|CS0|DNN|GO|RN8103|GSN|SF|RE|RN2104|CS0|DNN|GO|RN2104|GSN|SF|RE|RN8104|CS0|DNN|GO|RN8104|GSN|SF|RE|RN2105|CS0|DNN|GO|RN2105|GSN|SF|RE|RN8105|CS0|DNN|GO|RN8105|GSN|SF|RE|RN2106|CS0|DNN|GO|RN2106|GSN|SF|RE|RN8106|CS0|DNN|GO|RN8106|GSN|SF|RE|RN2107|CS0|DNN|GO|RN2107|GSN|SF|RE|RN8107|CS0|DNN|GO|RN8107|GSN|SF|RE|RN2108|CS0|DNN|GO|RN2108|GSN|SF|RE|RN8108|CS0|DNN|GO|RN8108|GSN|SF|RE|RN2109|CS0|DNN|GO|RN2109|GSN|SF|RE|RN8109|CS0|DNN|GO|RN8109|GSN|SF|RE|RN2110|CS0|DNN|GO|RN2110|GSN|SF|RE|RN8110|CS0|DNN|GO|RN8110|GSN|SF|RE|RN2138|CS0|DNN|GO|RN2138|GSN|SF|RE|RN8138|CS0|DNN|GO|RN8138|GSN|SF|RE|RN8502|CS0|DNN|GO|RN8502|GSN|SF|RE|RN2502|CS0|DNN|GO|RN2502|GSN|SF|RE|RN8503|CS0|DNN|GO|RN8503|GSN|SF|RE|RN2503|CS0|DNN|GO|RN2503|GSN|SF|RE|GO|RNP410|GSN|SF|RE|GO|RNP411|GSN|SF|RE|GO|RNP412|GSN|SF|RE|GO|RNP414|GSN|SF|RE|GO|RNP415|GSN|SF|RE|GO|RNP416|GSN|SF|RE|GO|RNP417|GSN|SF|RE|GO|RNP418|GSN|SF|RE|GO|RNP419|GSN|SF|RE|GO|RNP420|GSN|SF|RE|GO|RNP421|GSN|SF|RE|GO|RNP422|GSN|SF|RE|GO|RNP423|GSN|SF|RE|GO|RNP424|GSN|SF|RE|GO|RNP425|GSN|SF|RE|GO|RNP426|GSN|SF|RE|GO|RNP427|GSN|SF|RE|GO|RNP428|GSN|SF|RE|GO|RNP429|GSN|SF|RE|GO|RNP430|GSN|SF|RE|GO|RNP431|GSN|SF|RE|GO|RNP432|GSN|SF|RE|GO|RNP433|GSN|SF|RE|GO|RNP434|GSN|SF|RE|GO|RNP435|GSN|SF|RE|GO|RNP436|GSN|SF|RE|GO|RNP437|GSN|SF|RE|GO|RNP438|GSN|SF|RE|GO|RNP501|GSN|SF|RE|GO|RNP502|GSN|SF|RE|GO|RNP503|GSN|SF|RE|GO|RNP504|GSN|SF|RE|GO|RNP505|GSN|SF|RE|GO|RNP506|GSN|SF|RE|GO|RNP507|GSN|SF|RE|GO|RNP508|GSN|SF|RE|GO|RNP509|GSN|SF|RE|GO|RNP510|GSN|SF|RE|RN8439|CS0|DNN|GO|RN8439|GSN|SF|RE|RN2439|CS0|DNN|GO|RN2439|GSN|SF|RE|RN8440|CS0|DNN|GO|RN8440|GSN|SF|RE|RN2440|CS0|DNN|GO|RN2440|GSN|SF|RE|RN8224|CS0|DNN|GO|RN8224|GSN|SF|RE|RN2224|CS0|DNN|GO|RN2224|GSN|SF|RE|RN8111|CS0|DNN|GO|RN8111|GSN|SF|RE|RN2111|CS0|DNN|GO|RN2111|GSN|SF|RE|RN8112|CS0|DNN|GO|RN8112|GSN|SF|RE|RN2112|CS0|DNN|GO|RN2112|GSN|SF|RE|GO|RNP101|GSN|SF|RE|RN8114|CS0|DNN|GO|RN8114|GSN|SF|RE|RN2114|CS0|DNN|GO|RN2114|GSN|SF|RE|RN8115|CS0|DNN|GO|RN8115|GSN|SF|RE|RN2115|CS0|DNN|GO|RN2115|GSN|SF|RE|RN8116|CS0|DNN|GO|RN8116|GSN|SF|RE|RN2116|CS0|DNN|GO|RN2116|GSN|SF|RE|RN8117|CS0|DNN|GO|RN8117|GSN|SF|RE|RN2117|CS0|DNN|GO|RN2117|GSN|SF|RE|RN8118|CS0|DNN|GO|RN8118|GSN|SF|RE|RN2118|CS0|DNN|GO|RN2118|GSN|SF|RE|RN8119|CS0|DNN|GO|RN8119|GSN|SF|RE|RN2119|CS0|DNN|GO|RN2119|GSN|SF|RE|RN8125|CS0|DNN|GO|RN8125|GSN|SF|RE|RN2125|CS0|DNN|GO|RN2125|GSN|SF|RE|RN8126|CS0|DNN|GO|RN8126|GSN|SF|RE|RN2126|CS0|DNN|GO|RN2126|GSN|SF|RE|RN8127|CS0|DNN|GO|RN8127|GSN|SF|RE|RN2127|CS0|DNN|GO|RN2127|GSN|SF|RE|RN8128|CS0|DNN|GO|RN8128|GSN|SF|RE|RN2128|CS0|DNN|GO|RN2128|GSN|SF|RE|RN8129|CS0|DNN|GO|RN8129|GSN|SF|RE|RN2129|CS0|DNN|GO|RN2129|GSN|SF|RE|RN8130|CS0|DNN|GO|RN8130|GSN|SF|RE|RN2130|CS0|DNN|GO|RN2130|GSN|SF|RE|RN8133|CS0|DNN|GO|RN8133|GSN|SF|RE|RN2133|CS0|DNN|GO|RN2133|GSN|SF|RE|RN8134|CS0|DNN|GO|RN8134|GSN|SF|RE|RN2134|CS0|DNN|GO|RN2134|GSN|SF|RE|RN8135|CS0|DNN|GO|RN8135|GSN|SF|RE|RN2135|CS0|DNN|GO|RN2135|GSN|SF|RE|RN8136|CS0|DNN|GO|RN8136|GSN|SF|RE|RN2136|CS0|DNN|GO|RN2136|GSN|SF|RE|RN8137|CS0|DNN|GO|RN8137|GSN|SF|RE|RN2137|CS0|DNN|GO|RN2137|GSN|SF|RE|RN8201|CS0|DNN|GO|RN8201|GSN|SF|RE|RN2201|CS0|DNN|GO|RN2201|GSN|SF|RE|RN8202|CS0|DNN|GO|RN8202|GSN|SF|RE|RN2202|CS0|DNN|GO|RN2202|GSN|SF|RE|RN8203|CS0|DNN|GO|RN8203|GSN|SF|RE|RN2203|CS0|DNN|GO|RN2203|GSN|SF|RE|RN8204|CS0|DNN|GO|RN8204|GSN|SF|RE|RN2204|CS0|DNN|GO|RN2204|GSN|SF|RE|RN8205|CS0|DNN|GO|RN8205|GSN|SF|RE|RN2205|CS0|DNN|GO|RN2205|GSN|SF|RE|RN8206|CS0|DNN|GO|RN8206|GSN|SF|RE|RN2206|CS0|DNN|GO|RN2206|GSN|SF|RE|RN8207|CS0|DNN|GO|RN8207|GSN|SF|RE|RN2207|CS0|DNN|GO|RN2207|GSN|SF|RE|RN8208|CS0|DNN|GO|RN8208|GSN|SF|RE|RN2208|CS0|DNN|GO|RN2208|GSN|SF|RE|RN8209|CS0|DNN|GO|RN8209|GSN|SF|RE|RN2209|CS0|DNN|GO|RN2209|GSN|SF|RE|RN8210|CS0|DNN|GO|RN8210|GSN|SF|RE|RN2210|CS0|DNN|GO|RN2210|GSN|SF|RE|RN8211|CS0|DNN|GO|RN8211|GSN|SF|RE|RN2211|CS0|DNN|GO|RN2211|GSN|SF|RE|RN8212|CS0|DNN|GO|RN8212|GSN|SF|RE|RN2212|CS0|DNN|GO|RN2212|GSN|SF|RE|RN8515|CS0|DNN|GO|RN8515|GSN|SF|RE|RN2515|CS0|DNN|GO|RN2515|GSN|SF|RE|RN8516|CS0|DNN|GO|RN8516|GSN|SF|RE|RN2516|CS0|DNN|GO|RN2516|GSN|SF|RE|RN8214|CS0|DNN|GO|RN8214|GSN|SF|RE|RN2214|CS0|DNN|GO|RN2214|GSN|SF|RE|RN8215|CS0|DNN|GO|RN8215|GSN|SF|RE|RN2215|CS0|DNN|GO|RN2215|GSN|SF|RE|RN8216|CS0|DNN|GO|RN8216|GSN|SF|RE|RN2216|CS0|DNN|GO|RN2216|GSN|SF|RE|RN8217|CS0|DNN|GO|RN8217|GSN|SF|RE|RN2217|CS0|DNN|GO|RN2217|GSN|SF|RE|RN8218|CS0|DNN|GO|RN8218|GSN|SF|RE|RN2218|CS0|DNN|GO|RN2218|GSN|SF|RE|RN8219|CS0|DNN|GO|RN8219|GSN|SF|RE|RN2219|CS0|DNN|GO|RN2219|GSN|SF|RE|GO|RNP102|GSN|SF|RE|GO|RNP103|GSN|SF|RE|GO|RNP104|GSN|SF|RE|GO|RNP105|GSN|SF|RE|GO|RNP106|GSN|SF|RE|GO|RNP107|GSN|SF|RE|GO|RNP108|GSN|SF|RE|GO|RNP109|GSN|SF|RE|GO|RNP110|GSN|SF|RE|GO|RNP111|GSN|SF|RE|GO|RNP112|GSN|SF|RE|GO|RNP114|GSN|SF|RE|GO|RNP115|GSN|SF|RE|GO|RNP116|GSN|SF|RE|GO|RNP117|GSN|SF|RE|GO|RNP118|GSN|SF|RE|GO|RNP119|GSN|SF|RE|GO|RNP125|GSN|SF|RE|GO|RNP126|GSN|SF|RE|GO|RNP127|GSN|SF|RE|RN8440|CS0|DNN|GO|RN8440|GSN|SF|RE|RN2440|CS0|DNN|GO|RN2440|GSN|SF|RE|RN8439|CS0|DNN|GO|RN8439|GSN|SF|RE|RN2439|CS0|DNN|GO|RN2439|GSN|SF|RE|GO|RNP128|GSN|SF|RE|GO|RNP129|GSN|SF|RE|GO|RNP130|GSN|SF|RE|GO|RNP131|GSN|SF|RE|GO|RNP132|GSN|SF|RE|GO|RNP133|GSN|SF|RE|GO|RNP134|GSN|SF|RE|GO|RNP135|GSN|SF|RE|GO|RNP136|GSN|SF|RE|GO|RNP137|GSN|SF|RE|GO|RNP138|GSN|SF|RE|GO|RNP201|GSN|SF|RE|GO|RNP202|GSN|SF|RE|GO|RNP203|GSN|SF|RE|GO|RNP204|GSN|SF|RE|GO|RNP205|GSN|SF|RE|GO|RNP206|GSN|SF|RE|GO|RNP207|GSN|SF|RE|RN8220|CS0|DNN|GO|RN8220|GSN|SF|RE|RN2220|CS0|DNN|GO|RN2220|GSN|SF|RE|RN8221|CS0|DNN|GO|RN8221|GSN|SF|RE|RN2221|CS0|DNN|GO|RN2221|GSN|SF|RE|RN8222|CS0|DNN|GO|RN8222|GSN|SF|RE|RN2222|CS0|DNN|GO|RN2222|GSN|SF|RE|RN8223|CS0|DNN|GO|RN8223|GSN|SF|RE|RN2223|CS0|DNN|GO|RN2223|GSN|SF|RE|RN8225|CS0|DNN|GO|RN8225|GSN|SF|RE|RN2225|CS0|DNN|GO|RN2225|GSN|SF|RE|RN8226|CS0|DNN|GO|RN8226|GSN|SF|RE|RN2226|CS0|DNN|GO|RN2226|GSN|SF|RE|RN8227|CS0|DNN|GO|RN8227|GSN|SF|RE|RN2227|CS0|DNN|GO|RN2227|GSN|SF|RE|RN8228|CS0|DNN|GO|RN8228|GSN|SF|RE|RN2228|CS0|DNN|GO|RN2228|GSN|SF|RE|RN8229|CS0|DNN|GO|RN8229|GSN|SF|RE|RN2229|CS0|DNN|GO|RN2229|GSN|SF|RE|RN8230|CS0|DNN|GO|RN8230|GSN|SF|RE|RN2230|CS0|DNN|GO|RN2230|GSN|SF|RE|RN8233|CS0|DNN|GO|RN8233|GSN|SF|RE|RN2233|CS0|DNN|GO|RN2233|GSN|SF|RE|RN8234|CS0|DNN|GO|RN8234|GSN|SF|RE|RN2234|CS0|DNN|GO|RN2234|GSN|SF|RE|RN8235|CS0|DNN|GO|RN8235|GSN|SF|RE|RN2235|CS0|DNN|GO|RN2235|GSN|SF|RE|RN8236|CS0|DNN|GO|RN8236|GSN|SF|RE|RN2236|CS0|DNN|GO|RN2236|GSN|SF|RE|RN8237|CS0|DNN|GO|RN8237|GSN|SF|RE|RN2237|CS0|DNN|GO|RN2237|GSN|SF|RE|RN8238|CS0|DNN|GO|RN8238|GSN|SF|RE|RN2238|CS0|DNN|GO|RN2238|GSN|SF|RE|RN8301|CS0|DNN|GO|RN8301|GSN|SF|RE|RN2301|CS0|DNN|GO|RN2301|GSN|SF|RE|RN8302|CS0|DNN|GO|RN8302|GSN|SF|RE|RN2302|CS0|DNN|GO|RN2302|GSN|SF|RE|RN8303|CS0|DNN|GO|RN8303|GSN|SF|RE|RN2303|CS0|DNN|GO|RN2303|GSN|SF|RE|RN8304|CS0|DNN|GO|RN8304|GSN|SF|RE|RN2304|CS0|DNN|GO|RN2304|GSN|SF|RE|RN8305|CS0|DNN|GO|RN8305|GSN|SF|RE|RN2305|CS0|DNN|GO|RN2305|GSN|SF|RE|RN8306|CS0|DNN|GO|RN8306|GSN|SF|RE|RN2306|CS0|DNN|GO|RN2306|GSN|SF|RE|RN8307|CS0|DNN|GO|RN8307|GSN|SF|RE|RN2307|CS0|DNN|GO|RN2307|GSN|SF|RE|RN8308|CS0|DNN|GO|RN8308|GSN|SF|RE|RN2308|CS0|DNN|GO|RN2308|GSN|SF|RE|RN8309|CS0|DNN|GO|RN8309|GSN|SF|RE|RN2309|CS0|DNN|GO|RN2309|GSN|SF|RE|RN8310|CS0|DNN|GO|RN8310|GSN|SF|RE|RN2310|CS0|DNN|GO|RN2310|GSN|SF|RE|RN8311|CS0|DNN|GO|RN8311|GSN|SF|RE|RN2311|CS0|DNN|GO|RN2311|GSN|SF|RE|GO|RNP208|GSN|SF|RE|GO|RNP209|GSN|SF|RE|GO|RNP210|GSN|SF|RE|GO|RNP211|GSN|SF|RE|GO|RNP212|GSN|SF|RE|GO|RNP214|GSN|SF|RE|GO|RNP215|GSN|SF|RE|GO|RNP216|GSN|SF|RE|GO|RNP217|GSN|SF|RE|GO|RNP218|GSN|SF|RE|GO|RNP219|GSN|SF|RE|GO|RNP220|GSN|SF|RE|GO|RNP221|GSN|SF|RE|GO|RNP222|GSN|SF|RE|GO|RNP223|GSN|SF|RE|GO|RNP224|GSN|SF|RE|GO|RNP225|GSN|SF|RE|GO|RNP226|GSN|SF|RE|GO|RNP227|GSN|SF|RE|GO|RNP228|GSN|SF|RE|GO|RNP229|GSN|SF|DE|
#r='GO|RNP232|GSN|SF|RE|GO|RNP233|GSN|SF|RE|GO|RNP234|GSN|SF|RE|GO|RNP235|GSN|SF|RE|GO|RNP236|GSN|SF|RE|GO|RNP237|GSN|SF|RE|GO|RNP238|GSN|SF|RE|GO|RNP301|GSN|SF|RE|GO|RNP302|GSN|SF|RE|GO|RNP303|GSN|SF|RE|GO|RNP304|GSN|SF|RE|GO|RNP305|GSN|SF|RE|GO|RNP306|GSN|SF|RE|GO|RNP307|GSN|SF|RE|GO|RNP308|GSN|SF|RE|RN8312|CS0|DNN|GO|RN8312|GSN|SF|RE|RN2312|CS0|DNN|GO|RN2312|GSN|SF|RE|RN8314|CS0|DNN|GO|RN8314|GSN|SF|RE|RN2314|CS0|DNN|GO|RN2314|GSN|SF|RE|RN8315|CS0|DNN|GO|RN8315|GSN|SF|RE|RN2315|CS0|DNN|GO|RN2315|GSN|SF|RE|RN8316|CS0|DNN|GO|RN8316|GSN|SF|RE|RN2316|CS0|DNN|GO|RN2316|GSN|SF|RE|RN8317|CS0|DNN|GO|RN8317|GSN|SF|RE|RN2317|CS0|DNN|GO|RN2317|GSN|SF|RE|RN8318|CS0|DNN|GO|RN8318|GSN|SF|RE|RN2318|CS0|DNN|GO|RN2318|GSN|SF|RE|RN8319|CS0|DNN|GO|RN8319|GSN|SF|RE|RN2319|CS0|DNN|GO|RN2319|GSN|SF|RE|RN8320|CS0|DNN|GO|RN8320|GSN|SF|RE|RN2320|CS0|DNN|GO|RN2320|GSN|SF|RE|RN8321|CS0|DNN|GO|RN8321|GSN|SF|RE|RN2321|CS0|DNN|GO|RN2321|GSN|SF|RE|RN8322|CS0|DNN|GO|RN8322|GSN|SF|RE|RN2322|CS0|DNN|GO|RN2322|GSN|SF|RE|RN8323|CS0|DNN|GO|RN8323|GSN|SF|RE|RN2323|CS0|DNN|GO|RN2323|GSN|SF|RE|RN8324|CS0|DNN|GO|RN8324|GSN|SF|RE|RN2324|CS0|DNN|GO|RN2324|GSN|SF|RE|RN8325|CS0|DNN|GO|RN8325|GSN|SF|RE|RN2325|CS0|DNN|GO|RN2325|GSN|SF|RE|RN8326|CS0|DNN|GO|RN8326|GSN|SF|RE|RN2326|CS0|DNN|GO|RN2326|GSN|SF|RE|RN8327|CS0|DNN|GO|RN8327|GSN|SF|RE|RN2327|CS0|DNN|GO|RN2327|GSN|SF|RE|RN8328|CS0|DNN|GO|RN8328|GSN|SF|RE|RN2328|CS0|DNN|GO|RN2328|GSN|SF|RE|RN8329|CS0|DNN|GO|RN8329|GSN|SF|RE|RN2329|CS0|DNN|GO|RN2329|GSN|SF|RE|RN8330|CS0|DNN|GO|RN8330|GSN|SF|RE|RN2330|CS0|DNN|GO|RN2330|GSN|SF|RE|RN8333|CS0|DNN|GO|RN8333|GSN|SF|RE|RN2333|CS0|DNN|GO|RN2333|GSN|SF|RE|RN8334|CS0|DNN|GO|RN8334|GSN|SF|RE|RN2334|CS0|DNN|GO|RN2334|GSN|SF|RE|RN8335|CS0|DNN|GO|RN8335|GSN|SF|RE|RN2335|CS0|DNN|GO|RN2335|GSN|SF|RE|RN8336|CS0|DNN|GO|RN8336|GSN|SF|RE|RN2336|CS0|DNN|GO|RN2336|GSN|SF|RE|RN8337|CS0|DNN|GO|RN8337|GSN|SF|RE|RN2337|CS0|DNN|GO|RN2337|GSN|SF|RE|RN8338|CS0|DNN|GO|RN8338|GSN|SF|RE|RN2338|CS0|DNN|GO|RN2338|GSN|SF|RE|RN8401|CS0|DNN|GO|RN8401|GSN|SF|RE|RN2401|CS0|DNN|GO|RN2401|GSN|SF|RE|RN8402|CS0|DNN|GO|RN8402|GSN|SF|RE|RN2402|CS0|DNN|GO|RN2402|GSN|SF|RE|RN8403|CS0|DNN|GO|RN8403|GSN|SF|RE|RN2403|CS0|DNN|GO|RN2403|GSN|SF|RE|RN8404|CS0|DNN|GO|RN8404|GSN|SF|RE|RN2404|CS0|DNN|GO|RN2404|GSN|SF|RE|RN8405|CS0|DNN|GO|RN8405|GSN|SF|RE|RN2405|CS0|DNN|GO|RN2405|GSN|SF|RE|RN8406|CS0|DNN|GO|RN8406|GSN|SF|RE|RN2406|CS0|DNN|GO|RN2406|GSN|SF|RE|RN8407|CS0|DNN|GO|RN8407|GSN|SF|RE|RN2407|CS0|DNN|GO|RN2407|GSN|SF|RE|RN8408|CS0|DNN|GO|RN8408|GSN|SF|RE|RN2408|CS0|DNN|GO|RN2408|GSN|SF|RE|RN8409|CS0|DNN|GO|RN8409|GSN|SF|RE|RN2409|CS0|DNN|GO|RN2409|GSN|SF|RE|RN8410|CS0|DNN|GO|RN8410|GSN|SF|RE|RN2410|CS0|DNN|GO|RN2410|GSN|SF|RE|RN8411|CS0|DNN|GO|RN8411|GSN|SF|RE|RN2411|CS0|DNN|GO|RN2411|GSN|SF|RE|RN8412|CS0|DNN|GO|RN8412|GSN|SF|RE|RN2412|CS0|DNN|GO|RN2412|GSN|SF|RE|RN8414|CS0|DNN|GO|RN8414|GSN|SF|RE|RN2414|CS0|DNN|GO|RN2414|GSN|SF|RE|GO|RNP309|GSN|SF|RE|GO|RNP310|GSN|SF|RE|GO|RNP311|GSN|SF|RE|GO|RNP312|GSN|SF|RE|GO|RNP314|GSN|SF|RE|GO|RNP315|GSN|SF|RE|GO|RNP316|GSN|SF|RE|GO|RNP317|GSN|SF|RE|GO|RNP318|GSN|SF|RE|GO|RNP319|GSN|SF|RE|GO|RNP320|GSN|SF|RE|GO|RNP321|GSN|SF|RE|GO|RNP322|GSN|SF|RE|GO|RNP323|GSN|SF|RE|GO|RNP324|GSN|SF|RE|GO|RNP325|GSN|SF|RE|GO|RNP326|GSN|SF|RE|GO|RNP327|GSN|SF|RE|GO|RNP328|GSN|SF|RE|GO|RNP329|GSN|SF|RE|GO|RNP330|GSN|SF|RE|GO|RNP331|GSN|SF|RE|GO|RNP332|GSN|SF|RE|GO|RNP333|GSN|SF|RE|GO|RNP334|GSN|SF|RE|GO|RNP335|GSN|SF|RE|GO|RNP336|GSN|SF|RE|GO|RNP337|GSN|SF|RE|GO|RNP338|GSN|SF|RE|GO|RNP401|GSN|SF|RE|GO|RNP402|GSN|SF|RE|GO|RNP403|GSN|SF|RE|GO|RNP404|GSN|SF|RE|GO|RNP405|GSN|SF|RE|GO|RNP406|GSN|SF|RE|GO|RNP407|GSN|SF|RE|GO|RNP408|GSN|SF|RE|GO|RNP409|GSN|SF|RE|RN8415|CS0|DNN|GO|RN8415|GSN|SF|RE|RN2415|CS0|DNN|GO|RN2415|GSN|SF|RE|RN8416|CS0|DNN|GO|RN8416|GSN|SF|RE|RN2416|CS0|DNN|GO|RN2416|GSN|SF|RE|RN8417|CS0|DNN|GO|RN8417|GSN|SF|RE|RN2417|CS0|DNN|GO|RN2417|GSN|SF|RE|RN8418|CS0|DNN|GO|RN8418|GSN|SF|RE|RN2418|CS0|DNN|GO|RN2418|GSN|SF|RE|RN8419|CS0|DNN|GO|RN8419|GSN|SF|RE|RN2419|CS0|DNN|GO|RN2419|GSN|SF|RE|RN8420|CS0|DNN|GO|RN8420|GSN|SF|RE|RN2420|CS0|DNN|GO|RN2420|GSN|SF|RE|RN8421|CS0|DNN|GO|RN8421|GSN|SF|RE|RN2421|CS0|DNN|GO|RN2421|GSN|SF|RE|RN8422|CS0|DNN|GO|RN8422|GSN|SF|RE|RN2422|CS0|DNN|GO|RN2422|GSN|SF|RE|RN8423|CS0|DNN|GO|RN8423|GSN|SF|RE|RN2423|CS0|DNN|GO|RN2423|GSN|SF|RE|RN8424|CS0|DNN|GO|RN8424|GSN|SF|RE|RN2424|CS0|DNN|GO|RN2424|GSN|SF|RE|RN8425|CS0|DNN|GO|RN8425|GSN|SF|RE|RN2425|CS0|DNN|GO|RN2425|GSN|SF|RE|RN8426|CS0|DNN|GO|RN8426|GSN|SF|RE|RN2426|CS0|DNN|GO|RN2426|GSN|SF|RE|RN8427|CS0|DNN|GO|RN8427|GSN|SF|RE|RN2427|CS0|DNN|GO|RN2427|GSN|SF|RE|RN8428|CS0|DNN|GO|RN8428|GSN|SF|RE|RN2428|CS0|DNN|GO|RN2428|GSN|SF|RE|RN8429|CS0|DNN|GO|RN8429|GSN|SF|RE|RN2429|CS0|DNN|GO|RN2429|GSN|SF|RE|RN8430|CS0|DNN|GO|RN8430|GSN|SF|RE|RN2430|CS0|DNN|GO|RN2430|GSN|SF|RE|RN8433|CS0|DNN|GO|RN8433|GSN|SF|RE|RN2433|CS0|DNN|GO|RN2433|GSN|SF|RE|RN8435|CS0|DNN|GO|RN8435|GSN|SF|RE|RN2435|CS0|DNN|GO|RN2435|GSN|SF|RE|RN8436|CS0|DNN|GO|RN8436|GSN|SF|RE|RN2436|CS0|DNN|GO|RN2436|GSN|SF|RE|RN8434|CS0|DNN|GO|RN8434|GSN|SF|RE|RN2434|CS0|DNN|GO|RN2434|GSN|SF|RE|RN8504|CS0|DNN|GO|RN8504|GSN|SF|RE|RN2504|CS0|DNN|GO|RN2504|GSN|SF|RE|RN8505|CS0|DNN|GO|RN8505|GSN|SF|RE|RN2505|CS0|DNN|GO|RN2505|GSN|SF|RE|RN8506|CS0|DNN|GO|RN8506|GSN|SF|RE|RN2506|CS0|DNN|GO|RN2506|GSN|SF|RE|RN8507|CS0|DNN|GO|RN8507|GSN|SF|RE|RN2507|CS0|DNN|GO|RN2507|GSN|SF|RE|RN8508|CS0|DNN|GO|RN8508|GSN|SF|RE|RN2508|CS0|DNN|GO|RN2508|GSN|SF|RE|RN8509|CS0|DNN|GO|RN8509|GSN|SF|RE|RN2509|CS0|DNN|GO|RN2509|GSN|SF|RE|RN8510|CS0|DNN|GO|RN8510|GSN|SF|RE|RN2510|CS0|DNN|GO|RN2510|GSN|SF|RE|RN8511|CS0|DNN|GO|RN8511|GSN|SF|RE|RN2511|CS0|DNN|GO|RN2511|GSN|SF|RE|RN8512|CS0|DNN|GO|RN8512|GSN|SF|RE|RN2512|CS0|DNN|GO|RN2512|GSN|SF|RE|RN8514|CS0|DNN|GO|RN8514|GSN|SF|RE|RN2514|CS0|DNN|GO|RN2514|GSN|SF|RE|RN8516|CS0|DNN|GO|RN8516|GSN|SF|RE|RN2516|CS0|DNN|GO|RN2516|GSN|SF|RE|RN8131|CS0|DNN|GO|RN8131|GSN|SF|RE|RN2131|CS0|DNN|GO|RN2131|GSN|SF|RE|RN8132|CS0|DNN|GO|RN8132|GSN|SF|RE|RN2132|CS0|DNN|GO|RN2132|GSN|SF|RE|RN8231|CS0|DNN|GO|RN8231|GSN|SF|RE|RN2231|CS0|DNN|GO|RN2231|GSN|SF|RE|RN2331|CS0|DNN|GO|RN2331|GSN|SF|RE|RN8331|CS0|DNN|GO|RN8331|GSN|SF|RE|RN2332|CS0|DNN|GO|RN2332|GSN|SF|RE|RN8332|CS0|DNN|GO|RN8332|GSN|SF|RE|RN2431|CS0|DNN|GO|RN2431|GSN|SF|RE|RN8431|CS0|DNN|GO|RN8431|GSN|SF|RE|RN2432|CS0|DNN|GO|RN2432|GSN|SF|RE|RN8432|CS0|DNN|GO|RN8432|GSN|SF|RE|GO|RNP511|GSN|SF|RE|GO|RNP512|GSN|SF|RE|GO|RNP514|GSN|SF|RE|GO|RNP515|GSN|SF|RE|GO|RNP516|GSN|SF|RE|GO|RNPGSVF|GSN|SF|RE|RN8437|CS0|DNN|GO|RN8437|GSN|SF|RE|RN2437|CS0|DNN|GO|RN2437|GSN|SF|RE|RN8438|CS0|DNN|GO|RN8438|GSN|SF|RE|RN2438|CS0|DNN|GO|RN2438|GSN|SF|RE|RN8515|CS0|DNN|GO|RN8515|GSN|SF|RE|RN2515|CS0|DNN|GO|RN2515|GSN|SF|RE|RN8501|CS0|DNN|GO|RN8501|GSN|SF|RE|RN2501|CS0|DNN|GO|RN2501|GSN|SF|RE|RN8101|CS0|DNN|GO|RN8101|GSN|SF|RE|RN2101|CS0|DNN|GO|RN2101|GSN|SF|RE|RN2102|CS0|DNN|GO|RN2102|GSN|SF|RE|RN8102|CS0|DNN|GO|RN8102|GSN|SF|RE|RN2103|CS0|DNN|GO|RN2103|GSN|SF|RE|RN8103|CS0|DNN|GO|RN8103|GSN|SF|RE|RN2104|CS0|DNN|GO|RN2104|GSN|SF|RE|RN8104|CS0|DNN|GO|RN8104|GSN|SF|RE|RN2105|CS0|DNN|GO|RN2105|GSN|SF|RE|RN8105|CS0|DNN|GO|RN8105|GSN|SF|RE|RN2106|CS0|DNN|GO|RN2106|GSN|SF|RE|RN8106|CS0|DNN|GO|RN8106|GSN|SF|RE|RN2107|CS0|DNN|GO|RN2107|GSN|SF|RE|RN8107|CS0|DNN|GO|RN8107|GSN|SF|RE|RN2108|CS0|DNN|GO|RN2108|GSN|SF|RE|RN8108|CS0|DNN|GO|RN8108|GSN|SF|RE|RN2109|CS0|DNN|GO|RN2109|GSN|SF|RE|RN8109|CS0|DNN|GO|RN8109|GSN|SF|RE|RN2110|CS0|DNN|GO|RN2110|GSN|SF|RE|RN8110|CS0|DNN|GO|RN8110|GSN|SF|RE|RN2138|CS0|DNN|GO|RN2138|GSN|SF|RE|RN8138|CS0|DNN|GO|RN8138|GSN|SF|RE|RN8502|CS0|DNN|GO|RN8502|GSN|SF|RE|RN2502|CS0|DNN|GO|RN2502|GSN|SF|RE|RN8503|CS0|DNN|GO|RN8503|GSN|SF|RE|RN2503|CS0|DNN|GO|RN2503|GSN|SF|RE|GO|RNP410|GSN|SF|RE|GO|RNP411|GSN|SF|RE|GO|RNP412|GSN|SF|RE|GO|RNP414|GSN|SF|RE|GO|RNP415|GSN|SF|RE|GO|RNP416|GSN|SF|RE|GO|RNP417|GSN|SF|RE|GO|RNP418|GSN|SF|RE|GO|RNP419|GSN|SF|RE|GO|RNP420|GSN|SF|RE|GO|RNP421|GSN|SF|RE|GO|RNP422|GSN|SF|RE|GO|RNP423|GSN|SF|RE|GO|RNP424|GSN|SF|RE|GO|RNP425|GSN|SF|RE|GO|RNP426|GSN|SF|RE|GO|RNP427|GSN|SF|RE|GO|RNP428|GSN|SF|RE|GO|RNP429|GSN|SF|RE|GO|RNP430|GSN|SF|RE|GO|RNP431|GSN|SF|RE|GO|RNP432|GSN|SF|RE|GO|RNP433|GSN|SF|RE|GO|RNP434|GSN|SF|RE|GO|RNP435|GSN|SF|RE|GO|RNP436|GSN|SF|RE|GO|RNP437|GSN|SF|RE|GO|RNP438|GSN|SF|RE|GO|RNP501|GSN|SF|RE|GO|RNP502|GSN|SF|RE|GO|RNP503|GSN|SF|RE|GO|RNP504|GSN|SF|RE|GO|RNP505|GSN|SF|RE|GO|RNP506|GSN|SF|RE|GO|RNP507|GSN|SF|RE|GO|RNP508|GSN|SF|RE|GO|RNP509|GSN|SF|RE|GO|RNP510|GSN|SF|RE|RN8439|CS0|DNN|GO|RN8439|GSN|SF|RE|RN2439|CS0|DNN|GO|RN2439|GSN|SF|RE|RN8440|CS0|DNN|GO|RN8440|GSN|SF|RE|RN2440|CS0|DNN|GO|RN2440|GSN|SF|RE|RN8224|CS0|DNN|GO|RN8224|GSN|SF|RE|RN2224|CS0|DNN|GO|RN2224|GSN|SF|RE|RN8111|CS0|DNN|GO|RN8111|GSN|SF|RE|RN2111|CS0|DNN|GO|RN2111|GSN|SF|RE|RN8112|CS0|DNN|GO|RN8112|GSN|SF|RE|RN2112|CS0|DNN|GO|RN2112|GSN|SF|RE|GO|RNP101|GSN|SF|RE|RN8114|CS0|DNN|GO|RN8114|GSN|SF|RE|RN2114|CS0|DNN|GO|RN2114|GSN|SF|RE|RN8115|CS0|DNN|GO|RN8115|GSN|SF|RE|RN2115|CS0|DNN|GO|RN2115|GSN|SF|RE|RN8116|CS0|DNN|GO|RN8116|GSN|SF|RE|RN2116|CS0|DNN|GO|RN2116|GSN|SF|RE|RN8117|CS0|DNN|GO|RN8117|GSN|SF|RE|RN2117|CS0|DNN|GO|RN2117|GSN|SF|RE|RN8118|CS0|DNN|GO|RN8118|GSN|SF|RE|RN2118|CS0|DNN|GO|RN2118|GSN|SF|RE|RN8119|CS0|DNN|GO|RN8119|GSN|SF|RE|RN2119|CS0|DNN|GO|RN2119|GSN|SF|RE|RN8125|CS0|DNN|GO|RN8125|GSN|SF|RE|RN2125|CS0|DNN|GO|RN2125|GSN|SF|RE|RN8126|CS0|DNN|GO|RN8126|GSN|SF|RE|RN2126|CS0|DNN|GO|RN2126|GSN|SF|RE|RN8127|CS0|DNN|GO|RN8127|GSN|SF|RE|RN2127|CS0|DNN|GO|RN2127|GSN|SF|RE|RN8128|CS0|DNN|GO|RN8128|GSN|SF|RE|RN2128|CS0|DNN|GO|RN2128|GSN|SF|RE|RN8129|CS0|DNN|GO|RN8129|GSN|SF|RE|RN2129|CS0|DNN|GO|RN2129|GSN|SF|RE|RN8130|CS0|DNN|GO|RN8130|GSN|SF|RE|RN2130|CS0|DNN|GO|RN2130|GSN|SF|RE|RN8133|CS0|DNN|GO|RN8133|GSN|SF|RE|RN2133|CS0|DNN|GO|RN2133|GSN|SF|RE|RN8134|CS0|DNN|GO|RN8134|GSN|SF|RE|RN2134|CS0|DNN|GO|RN2134|GSN|SF|RE|RN8135|CS0|DNN|GO|RN8135|GSN|SF|RE|RN2135|CS0|DNN|GO|RN2135|GSN|SF|RE|RN8136|CS0|DNN|GO|RN8136|GSN|SF|RE|RN2136|CS0|DNN|GO|RN2136|GSN|SF|RE|RN8137|CS0|DNN|GO|RN8137|GSN|SF|RE|RN2137|CS0|DNN|GO|RN2137|GSN|SF|RE|RN8201|CS0|DNN|GO|RN8201|GSN|SF|RE|RN2201|CS0|DNN|GO|RN2201|GSN|SF|RE|RN8202|CS0|DNN|GO|RN8202|GSN|SF|RE|RN2202|CS0|DNN|GO|RN2202|GSN|SF|RE|RN8203|CS0|DNN|GO|RN8203|GSN|SF|RE|RN2203|CS0|DNN|GO|RN2203|GSN|SF|RE|RN8204|CS0|DNN|GO|RN8204|GSN|SF|RE|RN2204|CS0|DNN|GO|RN2204|GSN|SF|RE|RN8205|CS0|DNN|GO|RN8205|GSN|SF|RE|RN2205|CS0|DNN|GO|RN2205|GSN|SF|RE|RN8206|CS0|DNN|GO|RN8206|GSN|SF|RE|RN2206|CS0|DNN|GO|RN2206|GSN|SF|RE|RN8207|CS0|DNN|GO|RN8207|GSN|SF|RE|RN2207|CS0|DNN|GO|RN2207|GSN|SF|RE|RN8208|CS0|DNN|GO|RN8208|GSN|SF|RE|RN2208|CS0|DNN|GO|RN2208|GSN|SF|RE|RN8209|CS0|DNN|GO|RN8209|GSN|SF|RE|RN2209|CS0|DNN|GO|RN2209|GSN|SF|RE|RN8210|CS0|DNN|GO|RN8210|GSN|SF|RE|RN2210|CS0|DNN|GO|RN2210|GSN|SF|RE|RN8211|CS0|DNN|GO|RN8211|GSN|SF|RE|RN2211|CS0|DNN|GO|RN2211|GSN|SF|RE|RN8212|CS0|DNN|GO|RN8212|GSN|SF|RE|RN2212|CS0|DNN|GO|RN2212|GSN|SF|RE|RN8515|CS0|DNN|GO|RN8515|GSN|SF|RE|RN2515|CS0|DNN|GO|RN2515|GSN|SF|RE|RN8516|CS0|DNN|GO|RN8516|GSN|SF|RE|RN2516|CS0|DNN|GO|RN2516|GSN|SF|RE|RN8214|CS0|DNN|GO|RN8214|GSN|SF|RE|RN2214|CS0|DNN|GO|RN2214|GSN|SF|RE|RN8215|CS0|DNN|GO|RN8215|GSN|SF|RE|RN2215|CS0|DNN|GO|RN2215|GSN|SF|RE|RN8216|CS0|DNN|GO|RN8216|GSN|SF|RE|RN2216|CS0|DNN|GO|RN2216|GSN|SF|RE|RN8217|CS0|DNN|GO|RN8217|GSN|SF|RE|RN2217|CS0|DNN|GO|RN2217|GSN|SF|RE|RN8218|CS0|DNN|GO|RN8218|GSN|SF|RE|RN2218|CS0|DNN|GO|RN2218|GSN|SF|RE|RN8219|CS0|DNN|GO|RN8219|GSN|SF|RE|RN2219|CS0|DNN|GO|RN2219|GSN|SF|RE|GO|RNP102|GSN|SF|RE|GO|RNP103|GSN|SF|RE|GO|RNP104|GSN|SF|RE|GO|RNP105|GSN|SF|RE|GO|RNP106|GSN|SF|RE|GO|RNP107|GSN|SF|RE|GO|RNP108|GSN|SF|RE|GO|RNP109|GSN|SF|RE|GO|RNP110|GSN|SF|RE|GO|RNP111|GSN|SF|RE|GO|RNP112|GSN|SF|RE|GO|RNP114|GSN|SF|RE|GO|RNP115|GSN|SF|RE|GO|RNP116|GSN|SF|RE|GO|RNP117|GSN|SF|RE|GO|RNP118|GSN|SF|RE|GO|RNP119|GSN|SF|RE|GO|RNP125|GSN|SF|RE|GO|RNP126|GSN|SF|RE|GO|RNP127|GSN|SF|RE|RN8440|CS0|DNN|GO|RN8440|GSN|SF|RE|RN2440|CS0|DNN|GO|RN2440|GSN|SF|RE|RN8439|CS0|DNN|GO|RN8439|GSN|SF|RE|RN2439|CS0|DNN|GO|RN2439|GSN|SF|RE|GO|RNP128|GSN|SF|RE|GO|RNP129|GSN|SF|RE|GO|RNP130|GSN|SF|RE|GO|RNP131|GSN|SF|RE|GO|RNP132|GSN|SF|RE|GO|RNP133|GSN|SF|RE|GO|RNP134|GSN|SF|RE|GO|RNP135|GSN|SF|RE|GO|RNP136|GSN|SF|RE|GO|RNP137|GSN|SF|RE|GO|RNP138|GSN|SF|RE|GO|RNP201|GSN|SF|RE|GO|RNP202|GSN|SF|RE|GO|RNP203|GSN|SF|RE|GO|RNP204|GSN|SF|RE|GO|RNP205|GSN|SF|RE|GO|RNP206|GSN|SF|RE|GO|RNP207|GSN|SF|RE|RN8220|CS0|DNN|GO|RN8220|GSN|SF|RE|RN2220|CS0|DNN|GO|RN2220|GSN|SF|RE|RN8221|CS0|DNN|GO|RN8221|GSN|SF|RE|RN2221|CS0|DNN|GO|RN2221|GSN|SF|RE|RN8222|CS0|DNN|GO|RN8222|GSN|SF|RE|RN2222|CS0|DNN|GO|RN2222|GSN|SF|RE|RN8223|CS0|DNN|GO|RN8223|GSN|SF|RE|RN2223|CS0|DNN|GO|RN2223|GSN|SF|RE|RN8225|CS0|DNN|GO|RN8225|GSN|SF|RE|RN2225|CS0|DNN|GO|RN2225|GSN|SF|RE|RN8226|CS0|DNN|GO|RN8226|GSN|SF|RE|RN2226|CS0|DNN|GO|RN2226|GSN|SF|RE|RN8227|CS0|DNN|GO|RN8227|GSN|SF|RE|RN2227|CS0|DNN|GO|RN2227|GSN|SF|RE|RN8228|CS0|DNN|GO|RN8228|GSN|SF|RE|RN2228|CS0|DNN|GO|RN2228|GSN|SF|RE|RN8229|CS0|DNN|GO|RN8229|GSN|SF|RE|RN2229|CS0|DNN|GO|RN2229|GSN|SF|RE|RN8230|CS0|DNN|GO|RN8230|GSN|SF|RE|RN2230|CS0|DNN|GO|RN2230|GSN|SF|RE|RN8233|CS0|DNN|GO|RN8233|GSN|SF|RE|RN2233|CS0|DNN|GO|RN2233|GSN|SF|RE|RN8234|CS0|DNN|GO|RN8234|GSN|SF|RE|RN2234|CS0|DNN|GO|RN2234|GSN|SF|RE|RN8235|CS0|DNN|GO|RN8235|GSN|SF|RE|RN2235|CS0|DNN|GO|RN2235|GSN|SF|RE|RN8236|CS0|DNN|GO|RN8236|GSN|SF|RE|RN2236|CS0|DNN|GO|RN2236|GSN|SF|RE|RN8237|CS0|DNN|GO|RN8237|GSN|SF|RE|RN2237|CS0|DNN|GO|RN2237|GSN|SF|RE|RN8238|CS0|DNN|GO|RN8238|GSN|SF|RE|RN2238|CS0|DNN|GO|RN2238|GSN|SF|RE|RN8301|CS0|DNN|GO|RN8301|GSN|SF|RE|RN2301|CS0|DNN|GO|RN2301|GSN|SF|RE|RN8302|CS0|DNN|GO|RN8302|GSN|SF|RE|RN2302|CS0|DNN|GO|RN2302|GSN|SF|RE|RN8303|CS0|DNN|GO|RN8303|GSN|SF|RE|RN2303|CS0|DNN|GO|RN2303|GSN|SF|RE|RN8304|CS0|DNN|GO|RN8304|GSN|SF|RE|RN2304|CS0|DNN|GO|RN2304|GSN|SF|RE|RN8305|CS0|DNN|GO|RN8305|GSN|SF|RE|RN2305|CS0|DNN|GO|RN2305|GSN|SF|RE|RN8306|CS0|DNN|GO|RN8306|GSN|SF|RE|RN2306|CS0|DNN|GO|RN2306|GSN|SF|RE|RN8307|CS0|DNN|GO|RN8307|GSN|SF|RE|RN2307|CS0|DNN|GO|RN2307|GSN|SF|RE|RN8308|CS0|DNN|GO|RN8308|GSN|SF|RE|RN2308|CS0|DNN|GO|RN2308|GSN|SF|RE|RN8309|CS0|DNN|GO|RN8309|GSN|SF|RE|RN2309|CS0|DNN|GO|RN2309|GSN|SF|RE|RN8310|CS0|DNN|GO|RN8310|GSN|SF|RE|RN2310|CS0|DNN|GO|RN2310|GSN|SF|RE|RN8311|CS0|DNN|GO|RN8311|GSN|SF|RE|RN2311|CS0|DNN|GO|RN2311|GSN|SF|RE|GO|RNP208|GSN|SF|RE|GO|RNP209|GSN|SF|RE|GO|RNP210|GSN|SF|RE|GO|RNP211|GSN|SF|RE|GO|RNP212|GSN|SF|RE|GO|RNP214|GSN|SF|RE|GO|RNP215|GSN|SF|RE|GO|RNP216|GSN|SF|RE|GO|RNP217|GSN|SF|RE|GO|RNP218|GSN|SF|RE|GO|RNP219|GSN|SF|RE|GO|RNP220|GSN|SF|RE|GO|RNP221|GSN|SF|RE|GO|RNP222|GSN|SF|RE|GO|RNP223|GSN|SF|RE|GO|RNP224|GSN|SF|RE|GO|RNP225|GSN|SF|RE|GO|RNP226|GSN|SF|RE|GO|RNP227|GSN|SF|RE|GO|RNP228|GSN|SF|RE|GO|RNP229|GSN|SF|GI|RN2232|GN(ES) Mr Diaz|GFJose|GA151109|GD151109|GLSP|G#2808305|GSN|SF|RE|RN2232|CS3|DNN|GI|RN8232|GN(ES) Mr Diaz|GFJose|GA151109|GD151109|GLSP|G#2808305|GSN|SF|RE|RN8232|CS3|DNN|DE|'
#print "r es "+r
# destruim lista d'habitacions
habitacions=[]
# treim STX i parsejam cada resposta
s1=r.replace(STX, '').split(ETX)
# parsejam, miram tipus d'habitació i operació
for s in s1:
s=s.split('|')
op=s[0]
if s[1].startswith('RN2'):
hab=s[1][3:]
if len(hab)==3:
if (op=='GO' or op=='GI'):
#print "Habitació: {hab} te {op}".format(hab=hab, op=op)
reg={
'hab' : hab, # número d'habitació sense prefixe
'op' : op, # operació GO Guest Out, GI Guest In
'GuestSurname' : getToken(s, 'GN'), # Guest Name - Apellidos
'GuestName' : getToken(s, 'GF'), # Nom
'GuestArrival' : getToken(s, 'GA'), # data d'arribada
'GuestDepart' : getToken(s, 'GD'), # data de sortida
'GuestLanguage': getToken(s, 'GL'), # guest language
'GuestNumber' : getToken(s, 'G#') # numero de client
}
habitacions.append(reg)
if op=='GI':
print s
# ordenam ses habitacions
habitacions=sorted(habitacions, key=getKey, reverse=False)
for h in habitacions:
print "Habitacion: {0} Estado: {1} Nombre: {2}, {3}".format(h['hab'], h['op'], h['GuestSurname'], h['GuestName'])
#print habitacions
# --------------------------------------------------
# Comandaments de sortida
# --------------------------------------------------
# post simple - càrrecs -> confirmació amb PA|
# PS|RN4621|DA150629|TI112146|DD971396580|DU000050|PTC|TA064|
# [06.29/11:21:48]#0/1 <= <PostSimple xmlns="x-schema:PostSimpleSchema_I"
# RoomNum="4621" Date="150629" Time="112146" DialedDigits="971396580" Duration="000050"
# PostType="C" TotalAmount="064"/>
# PostType = ( C - call, M - Minibar )
PSC='PS|RN{RoomNum}|DA{Date}|TI{Time}|DD{DialedDigits}|DU{Duration}|PT{PostType}|TA{TotalAmount}|' # post simple, perfer carrecs
def PS(rn,ma,ta): # posteja un càrrec, ma- minibar article 3002 és varios
# càrrec minibar - PT = M, lU del final no se
#PSM='PS|RN{RoomNum}|DA{Date}|TI{Time}|PT{PostType}|MA{algo}|M#35#U|'
PSM='PS|RN{RoomNum}|DA{Date}|TI{Time}|DD{Concepto}|DU000050|PT{PostType}|MA{MinibarArticle}|M#3001|TA{TotalAmount}|'
send(PSM.format(RoomNum=rn, Date=putFIASDate(), Time=putFIASTime(),
PostType='C',
Concepto=ma,
MinibarArticle='3001',
TotalAmount=ta))
rec(3)
def RE(rn):
# room equipment - estado de la dependencia
# <RoomEquipment xmlns="x-schema:RoomEquipmentSchema_O" RoomNum="8335" ClassofService="0" MessageLightstatus="" DoNotdisturb="0"/>
# RE|RN8335|CS0|DNN|
send('RE|RN{RoomNum}|CS{ClassofService}|DN{DoNotDisturb}|'.format( RoomNum=rn,
ClassofService='3',
DoNotDisturb='N')) # room equipment
rec()
# ---------------------------------------------------
# Comandaments d'entrada
# ----------------------------------------------------
# guest out
# <GuestOut xmlns="x-schema:GuestOutSchema_O" RoomNum="8335" GuestNum="2785056" GuestShareflag="N" SwapFlag="N"/>
# GO|RN8335|G#2785056|GSN|
GO='GO|RN{RoomNum}|G#{GuestNum}|GS{GuestShareFlag}'
# guest in
# GI|RNP421|GN(DE) Herr Inauen|GFRolf|GA150624|GD150629|GLGE|G#2790811|GSN|
# [06.29/12:12:19]#1/0 => <RoomEquipment xmlns="x-schema:RoomEquipmentSchema_O" RoomNum="" ClassofService="" MessageLightstatus="" DoNotdisturb=""/>
GI='GI|RN{RoomNum}|GN{GuestFormattedname}|GF{GuestName}|GA{GuestArrival}|GD{GuestDeparture}|GL{GuestLanguage}|G#{GuestNum}|GS{GuestShareFlag}|'
# guest change
#GC|GN(EN) Mrs Nikitina|GFAnastasia|GA150628|GD150630|GLSP|G#2800213|RN8325|GSN|
#[06.29/12:13:22]#1/0 => <GuestdataChange xmlns="x-schema:GuestdataChangeSchema_O" GuestName="Nikitina" GuestFormattedname="(EN) Mrs Nikitina" GuestFirstname="Anastasia" GuestArrival="150628" GuestDeparture="150630" GuestLanguage="EN" GuestVip="" GuestNum="2800213" RoomNum="2325" GuestShareflag="N" RoomOldNum="" GuestShareflagOld=""/>
GC='GC|GN{GuestFormattedname}|GF{GuestName}|GA{GuestArrival}|GD{GuestDeparture}|GL{GuestLanguage}|G#{GuestNum}|RN{RoomNum}|GS{GuestShareFlag}'
# post answer
#<PostAnswer xmlns="x-schema:PostAnswerSchema_O" RoomNum="4621" Date="150629" Time="112143" AnswerStat="OK"/>
#[06.29/11:21:49]#1/0 <- PA|RN4621|DA150629|TI112143|ASOK|
PA='PA|RN{RoomNum}|DA{Date}|TI{Time}|AS{AnswerStat}|'
#parseaDR('oo')
#exit(0)
telnet = telnetlib.Telnet()
host='itf.opera.ibizagranhotel.com'
port=5020
try:
#telnet.set_debuglevel(10)
telnet.open(host=host, port=5020)
LS()
# send('RE|RN{RoomNum}|'.format( RoomNum='2232', ClassofService='C')) # room equipment
#rec()
#send('PS|RN4135|DA'+putFIASDate()+'|TI'+putFIASTime()+'|DD971194806|DU000027|PTC|TA064|')
#send('PS|RN2232|DA150704|TI225006|DD971314554|DU000037|PTC|TA012|')
#send('PS|RN2232|DA150704|TI225006|DD971314554|DU000037|PTC|TA112|')
#rec(1)
#RE('2232')
#PS('2232', 'el concepto', '080')
DR()
# tancam sessió
LE()
time.sleep(.5) # ens dona temps a llegir resposta
telnet.close()
except Exception, e:
print "Error "+e.message
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment