<\/HEAD>
Als onderdeel van het Waze Connected Citizen Program (CCP)<\/A>, krijgen partners toegang tot realtime verkeersopstoppingen en incidenten die via de Waze-app worden gemeld (in XML- en JSON-formaten). Er zijn al technieken en documentatie<\/A> over hoe deze gegevens in een ArcGIS-platform kunnen worden gebruikt met GeoEvent.<\/P><\/P>
In deze blog zal ik een techniek beschrijven om deze gegevens te gebruiken in ArcGIS Online via Python en Windows Taakplanner. Het
initiΓ«le Python-script<\/A> is ontwikkeld door Joel Meier<\/A> die ik heb aangepast om te passen bij de voorgestelde workflow. Ook een speciale vermelding voor mijn collegaβs Edmund Hall<\/A> en Louis Tian<\/A> die mij hebben geholpen met debuggen. En last but not least wil ik Andrew Stauffer<\/A> bedanken voor het helpen van ons partner en het maximale uit het Waze CCP<\/A> te halen.<\/P><\/P>
ArcGIS Online feature layers maken om verkeersinformatie op te slaan<\/H2>Meld u aan bij ArcGIS Online > Mijn Content-pagina, klik op Maken > Feature Layer, kies Van URL<\/EM> en voer de exacte URL in van de punt-feature layer-sjabloon. Herhaal daarna hetzelfde proces voor de lijn-feature layer. Dit zal nieuwe lege feature layers creΓ«ren met het vereiste schema (veldnaam, typen en ruimtelijke referentie)<\/EM>.<\/P>Punt Feature Layer Sjabloon<\/STRONG><\/SPAN><\/P>https:\/\/services1.arcgis.com\/E5n4f1VY84i0xSjy\/arcgis\/rest\/services\/WazeTrafficAlertsEmpty\/FeatureServer<\/A><\/SPAN><\/P>Lijn Feature Layer Sjabloon<\/STRONG><\/SPAN><\/P>
https:\/\services1.arcgis.com\E5n4f1VY84i0xSjy\arcgis\rest\services\WazeTrafficJamsEmpty\FeatureServer<\a><\/SPAN><\/LI>UUID (type: esriFieldTypeDouble, alias: UUID, SQL Type: sqlTypeOther, nullable: true, bewerkbaar: true)<\/EM><\/SPAN><\/LI><\/UL>Shape__LengthΒ (type: esriFieldTypeDouble, alias: Shape__Length, SQL Type: sqlTypeDouble, nullable: true, niet bewerkbaar)*<\/STRONG><\/EM><\/SPAN><\/LI>CreationDateΒ (type: esriFieldTypeDate, alias: CreationDate, SQL Type: sqlTypeOther, lengte: 8, nullable: true, niet bewerkbaar)*<\/STRONG><\/EM><\/SPAN><\/LI>CreatorΒ (type: esriFieldTypeString, alias: Creator, SQL Type: sqlTypeOther, lengte: 128, nullable: true, niet bewerkbaar)*<\/STRONG><\/EM><\/SPAN><\/LI>EditDateΒ (type: esriFieldTypeDate, alias: EditDate, SQL Type: sqlTypeOther, lengte: 8, nullable: true, niet bewerkbaar)*<\/STRONG><\/EM><\/SPAN><\/LI>EditorΒ (type: esriFieldTypeString, alias: Editor, SQL Type: sqlTypeOther, lengte: 128, nullable: true, niet bewerkbaar)*<\/STRONG><\/EM><\/SPAN><\/LI><\/UL>*<\/STRONG>vooraf ingevulde velden<\/EM><\/SPAN><\/P>Zorg ervoor dat je de exacte veldnamen en types<\/EM><\/STRONG> gebruikt (anders moet je het script aanpassen).<\/SPAN><\/P>Zodra feature layers zijn geconfigureerd, schakel dan bewerken in<\/STRONG> en stel ze in op PRIVATE<\/STRONG>.<\/SPAN><\/P>Raadpleeg "Waze Feed Technical Specifications [Get Waze Data]"<\/EM><\/STRONG> van het Partner's Portal<\/A> voor exacte definities van veldbeschrijvingen.<\/P><\/BLOCKQUOTE><\/P>
Configureren van het Python-script<\/H4>Vervang de commentaarsecties (regels 6, 9 en 10)<\/SPAN><\/EM> door je eigen XML-feed en URL's voor je point en line feature layers.<\/P>import<\/SPAN> xml.<\/SPAN>etree.<\/SPAN>ElementTree as<\/SPAN> ET
import<\/SPAN> urllib.<\/SPAN>request
import<\/SPAN> arcpy
from<\/SPAN> datetime import<\/SPAN> datetime
namespaces =<\/SPAN> {<\/SPAN>'georss'<\/SPAN> :<\/SPAN> '<\/'>http:\/\/www.georss.orggeorss'<\/'>,<\/'> 'linqmap'<\/'>:'http://www.linqmap.com' }
tree = ET.ElementTree(file=urllib.request.urlopen('##URL for XML waze connection##'))
root = tree.getroot()
channel_head = []
fcp = "##URL to Point - Feature Layer##"
fcl = "##URL to Line - Feature Layer##"
for member in root.findall('channel/item'):
channel =[]
Title = member.find('title').text.upper()
try:
point = member.find('georss:point', namespaces))
line = member.find('georss:line', namespaces))
except:
pass
print('Fail Stage 0')
if point != None:
try:
Date = member.find('pubDate').text
DateReported = datetime.strptime(Date, '%a %b %d %H:%M:%S %z %Y')
if len(member.findall('linqmap:city', namespaces)) > 0:
City = member.find('linqmap:city', namespaces).text
else:
City = ''
if len(member.findall('linqmap:street', namespaces)) > 0:
Street = member.find('linqmap:street', namespaces).text
else:
Street = ''
if len(member.findall('linqmap:subtype', namespaces)) > 0 and member token">.<\/SPAN>vind(<\/SPAN>'linqmap:subtype'<\/SPAN>, <\/SPAN>namespaces)<\/SPAN>.<\/SPAN>tekst is<\/SPAN> niet<\/SPAN> None:<\/SPAN>
Subtype =<\/SPAN> lid.<\/SPAN>vind(<\/SPAN>'linqmap:subtype'<\/SPAN>, <\/SPAN>namespaces)<\/SPAN>.<\/SPAN>tekst.<\/SPAN>vervang(<\/SPAN>'_'<\/SPAN>, <\/SPAN>' '<\/SPAN>)<\/SPAN>.<\/SPAN>capitalizeer(<\/SPAN>)<\/span>
anders<\/span>:<\/span>
Subtype =<\/span> ''<\/span>
UUID =<\/span> lid.<\/span>vind(<\/span>'linqmap:uuid'<\/span>, <\/span>namespaces)<\/span>.<\/span>tekst
Betrouwbaarheid =<\/span> lid.<\/span>vind(<\/span>'linqmap:reliability'<\/span>, <\/span>namespaces)<\/span>.<\/span>tekst
als<\/span> len(<\/span>lid.<\/span>vindalles(<\/span>'linqmap:reportDescription'<\/span>, <\/span>namespaces)<\/span>)<\/span> ><\/span> 0<\/span>:<\/span>
Beschrijving =<\/span> lid.<\/span>vind(<\/span>'linqmap:reportDescription'<\/span>, <\/span>namespaces)<\/span>.<\/span>tekst
anders<\/span>:<\/span>
Beschrijving =<\/span> ''<\/span>
Type < spanclass= "operatortoken" > = < \/ span > lid < spanclass= " punctuationtoken " > . < \/ span > vind < spanclass= " punctuationtoken " > ( < \/ span > < spanclass= " stringtoken " > 'linqmap:type' < \/ span > , namespaces < spanclass= " punctuationtoken " > ) < \/ span > . tekst < spanclass= " punctuationtoken " > . vervang < spanclass= " punctuationtoken " > ( < \/ span > < spanclass= " stringtoken " > '_' < \/ span > , Β < spanclass= " stringtoken " > ' ' Β < \/ span > ) Β . capitalizeer ( )
punt < spanclass= " operatortoken " > = Β lid Β . vind ( 'georss:point', namespaces ) . tekst . vervang ( ' -', ',-' ) . split ( ' ' )
rij Β = Β Subtype, Type, Titel, DatumGerapporteerd, Stad, Straat, UUID, Betrouwbaarheid, Beschrijving, float(punt[1]), float(punt[0])
cursor Β = Β arcpy.da.InsertCursor(fcp, ["ReportSubtype", "ReportType", "Title", "DateReported", "City", "Street", "UUID", "Reliability", "Description", "SHAPE@X", "SHAPE@Y"])
cursor.insertRow(rij)
verwijder cursor
print('fase 1')
behalve:
passeren
print('mislukte Fase 1')
elif lijn != None:
als Titel != 'IRREGULARITY':
probeer:
Datum = lid.vind('pubDate').tekst
DatumGerapporteerd = datetime.strptime(Datum, '%a %b %d %H:%M:%S %z %Y')
als len(lid.vindalles('linqmap:city', namespaces)) > 0:
Stad = lid.vind('linqmap:city', namespaces).tekst
anders:
Stad = ''
als len(lid.vindalles('linqmap:startNode', namespaces)) > 0:
StartNode = lid.vind('linqmap:startNode', namespaces).tekst
anders:
StartNode = ''
als len(<\/SPAN>member.<\/SPAN>findall(<\/SPAN>'linqmap:endNode'<\/SPAN>,<\/SPAN> namespaces)<\/SPAN>)<\/SPAN> ><\/SPAN> 0<\/SPAN>:<\/SPAN>
EndNode =<\/SPAN> member.<\/SPAN>find(<\/SPAN>'linqmap:endNode'<\/SPAN>,<\/SPAN> namespaces)<\/SPAN>.<\/SPAN>text
anders<\/SPAN>:<\/SPAN>
EndNode =<\/SPAN> ''<\/SPAN>
als<\/SPAN> len(<\/SPAN>member.<\/span>findall(<\/span>'linqmap:reportDescription'<\/span>,<\/span> namespaces)<\/span>)<\/span> ><\/span> 0<\/span>:<\/span>
Description =<\/span> member.<\/span>find(<\/span>'linqmap:reportDescription'<\/span>,<\/span> namespaces)<\/span>.<\/span>text
anders<\/span>:<\/span>
Description =<\/span> ''<\/span>
als<\/span> len(<\/span>member.<\/span>findall(<\/span>'linqmap:street'<\/span>,<\/span> namespaces)<\/span>)<\/span> ><\/span> 0<\/span>:<\/span>
Street =<\/span> member.<\/span>find(<\/span>'linqmap:street'<\/span>,<\/span> namespaces)<\/span>.<\/span>text
anders<\/span>:<\/span>
Street =<\/span> ''<\/span>
UUID < spanclass= "operatortoken" > = < \/ span > member < spanclass= " punctuationtoken " > . < \/ span > find < spanclass= " punctuationtoken " > ( < \/ span > < spanclass= " stringtoken " > 'linqmap:uuid' < \/ span > , namespaces < spanclass= " punctuationtoken " > ) < \/ span > . text
Type < spanclass= " operatortoken " > = < \/ span > member < spanclass= " punctuationtoken " > . < \/ span > find < spanclass= " punctuationtoken " > ( < \/ span > < spanclass= " stringtoken " > 'linqmap:type' < \/ span > , namespaces < spanclass= " punctuationtoken " > ) < \/ span > . text . replace ( '_' , ' ' ) . capitalize ( )
Length < spanclass= " operatortoken " > = < \/ span > member < spanclass= " punctuationtoken " > . find ( 'linqmap:length' , namespaces ) . text
Level < spanclass= " operatortoken " > = < \/ span > member < spanclass= " punctuationtoken " > . find ( 'linqmap:level' , namespaces ) . text
line < spanclass= " operatortoken " > = < \/ span > member . find ( 'georss:line' , namespaces ) . text . replace ( '\n' , '' ) . replace ( ' ' , '],[' ) . replace ( '],[-' , ', -' ) . split ( ', ' )
Speed = member.find('linqmap:speed', namespaces).text
Delay = member.find('linqmap:delay', namespaces).text
cur = arcpy.da.InsertCursor(fcl, ["Speed","Delay","Title","ReportType","DateReported","City","Street","Length","ReportLevel","UUID","StartNode","EndNode","Description","SHAPE@"])
array = arcpy.Array()
voor coords in line:
xy = coords.split('],[')
array.add(arcpy.Point(xy[1], xy[0]))
cur.insertRow([Speed, Delay, Title, Type, DateReported, City, Street, Length, Level, UUID, StartNode, EndNode, Description, arcpy.Polyline(array)])
verwijder cur
print( token">'fase 2'<\/SPAN>)<\/SPAN>
behalve<\/SPAN>:<\/SPAN>
passeren<\/SPAN>
printen<\/SPAN>(<\/SPAN>'mislukte Fase 2'<\/SPAN>)<\/SPAN>
anders<\/SPAN>:<\/SPAN>
proberen<\/SPAN>:<\/SPAN>
Datum =<\/SPAN> lid.<\/SPAN>vinden(<\/SPAN>'updateDate'<\/SPAN>)<\/SPAN>.<\/SPAN>tekst
DatumGerapporteerd =<\/SPAN> datetime.<\/SPAN>strptime(<\/SPAN>Datum, <\/SPAN> '%a %b %d %H:%M:%S %z %Y'<\/SPAN>)<\/SPAN>
als<\/SPAN> len(<\/SPAN>lid.<\/SPAN>vindenalles(<\/SPAN>'linqmap:city'<\/Span>,<\/span> namespaces<\/) > 0:<\/)
Stad <span clasS=\"operator toKen\">=<\/) lid<SPAn clasS=\"punctuatiON toKen\"><\/>vinden<\(</span>'linqmap:city', namespaces<\)</span><\.>tekst
anders:<\/span>
Stad =<\/span> ''
als len<(</span>lid<.>vindenalles<(</span>'linqmap:startNode', namespaces<)</span><)</span> > 0:<\/span>
StartNode =<\/span> lid<.>vinden<(</span>'linqmap:startNode', namespaces<)</span><.>tekst
anders:<\/span>
StartNode =<\/span> ''
als len<(</span>lid<.>vindenalles<(</span>'linqmap:endNode',"DateReported","City","Street","Length","ReportLevel","UUID","StartNode","EndNode","Description","SHAPE@"])
array = arcpy.Array()
voor coords in line:
xy = coords.split('],[')
array.add(arcpy.Point(xy[1], xy[0]))
cur.insertRow([Speed, Delay, Title, Type, DateReported, City, Street, Length, Level, UUID, StartNode, EndNode, Description, arcpy.Polyline(array)])
verwijder cur
print('fase 3')
behalve:
passeren
print('mislukte fase 3')
anders:
print('Fout')βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ<\/SPAN>β<\/SPAN>β<\/SPAN>β<\/SPAN>β<\/SPAN>β<\/SPAN>β<\/SPAN>β<\/SPAN>β<\/SPAN>β<\/SPAN>β<\/SPAN>β<\/SPAN>β<\/SPAN>β<\/SPAN>β<\/SPAN>β<\/SPAN>β<\/SPAN>β<\/SPAN>β<\/SPAN>β<\/SPAN>β<\/SPAN>β<\/SPAN>β<\/SPAN>β<\/SPAN>β<\/SPAN>β<\/SPAN>β<\/SPAN>β<\/SPAN>β<\/SPAN>β<\/SPAN>β<<emojI_31 >><<emojI_32 >><<emojI_33 >><<emojI_34 >><<emojI_35 >><<emojI_36 >><<emojI_37 >><<emojI_38 >><<emojI_39 >><<emojI_40 >><<emojI_41 >><<emojI_42 >><<emojI_43 >><<emojI_44 >><<emojI_45 >><<emojI_46 >><<emojI_47 >><<emojI_48 >><<emojI_49 >><<emojI_50 >><<emojI_51 >><<emojI_52 >><<emojI_53 >><<emojI_54 >><<emojI_55 >><<emojI_56 >><<emojI_57 >><<emojI_58 >><<emojI_59 >><<emojI_60 >><<emojI_61 >><<emojI_62 >><<emojI_63 >><<emojI_64 ></ span >< span >> << emoj I _ 65 >> < / span >< span >> << emoj I _ 66 >> < / span >< span >> << emoj I _ 67 >> < / span >< span >> << emoj I _ 68 >> < / span >< span >> << emoj I _ 69 >> < / span >< span >> << emoj I _ 70 >> < / span >< span >> << emoj I _ 71 >> < / span >< span >> << emoj I _ 72 >> < / span >< span >> << emoj I _ 73 >> < / span >< span >> << emoj I _ 74 >> < / span >< span >> << emoj I _ 75 >> < / span >< span >> << emoj I _ 76 >> < / span >< span >> << emoj I _ 77 >> < / span >< span >> << emoj I _ 78 >> < / span >< span >> << emoj I _ 79 >> < / span >< span >> << emoj I _ 80 >> < / span >< span >> << emoj I _ 81 >> < / span >< span >> << emoj I _ 82 >> < / span >< span >> << emoj I _ 83 >> < / span >< span >> << emoj I _ 84 >> < / span >< span >> << emoj I _ 85 >> < / span >< span >> << emoj I _ 86 >> < / span >< span >> << emoj I _ 87 >> < / span >< span >> << emoj I _ 88 >> < / span >< span >> << emoj I _ 89 >> < / span >< span>> << em oj I _90>> > << e moj I _91>> > << e moj I _92>> > << e moj I _93>> > << e moj I _94>> > << e moj I _95>> > << e moj I _96>> > << e moj I _97>> > << e moj I _98>> > << e moj I _99>> > << e moj I _100>> > << e moj I _101>> > << e moj I _102>> > << e moj I _103>> > << e moj I _104>> > << e moj I _105>> > << e moj I _106>> > << e moj I _107>> > << e moj I _108>> > << e moj I _109>> > << e moj I _110>> > << e moj I _111>> > << e moj I _112>> > << e moj I _113>> </ sp a n> < sp a n>>> <<< EMOJ_I__114>>> <<< / SPAN>>> <<< SPAN>>> <<< EMOJ_I__115>>> <<< / SPAN>>> <<< SPAN>>> <<< EMOJ_I__116>>> <<< / SPAN>>> <<< SPAN>>> <<< EMOJ_I__117>>> <<< / SPAN>>> <<< SPAN>>> <<< EMOJ_I__118>>> <<< / SPAN>>> <<< SPAN>>> <<< EMOJ_I__119>>> <<< / SPAN>>> <<< SPAN>>> <<< EMOJ_I__120>>> <<< / SPAN>>> <<< SPAN>>> <<< EMOJ_I__121>>> <<< / SPAN>>> <<< SPAN>>> <<< EMOJ_I__122>>> <<< / SPAN>>> <<< SPAN>>> <<< EMOJ_I__123>>> <<< / SPAN>>> <<< SPAN>>> <<< EMOJ_I__124>>> <<< / SPAN>>> <<< SPAN>>> <<< EMOJ_I__125>>> <<< / SPAN >>><<<SP AN >>><<< EMOJ_I__126 >>><<<SP AN >>><<< EMOJ_I__127 >>><<<SP AN >>><<< EMOJ_I__128 >>><<<SP AN >>><<< EMOJ_I__129 >>><<<SP AN >>><<< EMOJ_I__130 >>><<<SP AN >>><<< EMOJ_I__131 >>><<<SP AN >>><<< EMOJ_I__132 >>><<<SP AN >>><<< EMOJ_I__133 >>><<<SP AN >>><<< EMOJ_I__134 >>><<<SP AN >>><<< EMOJ_I__135 >>><<<SP AN >>><<< EMOJ_I__136 >>><<<SP AN >>><<< EMOJ_I__137 >>><<<SP AN >>><<< EMOJ_I__138 >>><<<SP AN >>><<< EMOJ_I__139 >>><<<SP AN >>><<< EMOJ_I__140 >>><<<SP AN >>><<< EMOJ_I__141 >>><<<SP AN >>><<< EMOJ_I__142 >>><<<SP AN >>><<< EMOJ_I__143 >>><<<SP AN >>><<< EMOJ_I__144 >>><<<SP AN >>><<< EMOJ_I__145 >>><<<SP AN >>><<< EMOJ_I__146 >>><<<SP AN >>><<< EMOJ_I__147 >>><<<SP AN >>><<< EMOJ_I__148 >>><<<< SPAN>>>><<EM OJ_I __149>>>><<S PAN>>>><<E MOJ_I __150>>>><<S PAN>>>><<E MOJ_I __151>>>><<S PAN>>>><<E MOJ_I __152>>>><<S PAN>>>><<E MOJ_I __153>>>><<S PAN>>>><<E MOJ_I __154>>>><<S PAN>>>><<E MOJ_I __155>>>>