mirror of
https://gitea.osmocom.org/sim-card/simtrace2.git
synced 2026-03-16 21:28:33 +03:00
remove old python userspace code
the USB protocol is changing fundamentally anyway, and APDU handling for card emulation is inside the device, so the old code is incompatible anyway.
This commit is contained in:
@@ -1,150 +0,0 @@
|
|||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
# Code ported from simtrace host program apdu_split.c
|
|
||||||
#
|
|
||||||
# (C) 2010 by Harald Welte <hwelte@hmw-consulting.de>
|
|
||||||
#
|
|
||||||
# This program is free software; you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License version 2
|
|
||||||
# as published by the Free Software Foundation
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU General Public License for more details.
|
|
||||||
|
|
||||||
from enum import Enum
|
|
||||||
from util import HEX
|
|
||||||
from array import array
|
|
||||||
|
|
||||||
class apdu_states(Enum):
|
|
||||||
APDU_S_CLA = 1
|
|
||||||
APDU_S_INS = 2
|
|
||||||
APDU_S_P1 = 3
|
|
||||||
APDU_S_P2 = 4
|
|
||||||
APDU_S_P3 = 5
|
|
||||||
APDU_S_SEND_DATA = 6
|
|
||||||
APDU_S_DATA = 7
|
|
||||||
APDU_S_DATA_SINGLE = 8
|
|
||||||
APDU_S_SW1 = 9
|
|
||||||
APDU_S_SW2 = 10
|
|
||||||
APDU_S_FIN = 11
|
|
||||||
PTS = 12
|
|
||||||
|
|
||||||
class Apdu_splitter:
|
|
||||||
|
|
||||||
def __init__(self):
|
|
||||||
self.state = apdu_states.APDU_S_CLA
|
|
||||||
self.buf = array('B', [])
|
|
||||||
self.pts_buf = array('B', [])
|
|
||||||
self.data = array('B', [])
|
|
||||||
self.ins = array('B', [])
|
|
||||||
self.data_remainig = 0
|
|
||||||
|
|
||||||
def func_APDU_S_INS(self, c):
|
|
||||||
self.ins = c
|
|
||||||
self.buf.append(c)
|
|
||||||
self.state = apdu_states(self.state.value + 1)
|
|
||||||
|
|
||||||
def func_PTS(self, c):
|
|
||||||
self.pts_buf.append(c)
|
|
||||||
print("PTS: ", self.pts_buf)
|
|
||||||
if self.pts_buf == [0xff, 0x00, 0xff]:
|
|
||||||
self.state = apdu_states.APDU_S_FIN
|
|
||||||
|
|
||||||
def func_APDU_S_CLA_P1_P2(self, c):
|
|
||||||
if self.state == apdu_states.APDU_S_CLA and c == 0xff:
|
|
||||||
self.state = apdu_states.PTS
|
|
||||||
self.pts_buf = [c]
|
|
||||||
else:
|
|
||||||
self.buf.append(c)
|
|
||||||
self.state = apdu_states(self.state.value + 1)
|
|
||||||
|
|
||||||
def func_APDU_S_P3(self, c):
|
|
||||||
self.buf.append(c)
|
|
||||||
self.data_remaining = 256 if c == 0 else c
|
|
||||||
self.state = apdu_states.APDU_S_SW1
|
|
||||||
|
|
||||||
def func_APDU_S_DATA(self, c):
|
|
||||||
self.buf.append(c)
|
|
||||||
self.data.append(c)
|
|
||||||
self.data_remaining -= 1
|
|
||||||
if self.data_remaining == 0:
|
|
||||||
self.state = apdu_states.APDU_S_SW1
|
|
||||||
|
|
||||||
def func_APDU_S_DATA_SINGLE(self, c):
|
|
||||||
self.buf.append(c)
|
|
||||||
self.data_remaining -= 1
|
|
||||||
self.state = apdu_states.APDU_S_SW1
|
|
||||||
|
|
||||||
def func_APDU_S_SW1(self, c):
|
|
||||||
if (c == 0x60):
|
|
||||||
print("APDU_S_SW1: NULL")
|
|
||||||
else:
|
|
||||||
# check for 'all remaining' type ACK
|
|
||||||
if c == self.ins or c == self.ins + 1 or c == ~(self.ins+1):
|
|
||||||
print("ACK")
|
|
||||||
self.data = []
|
|
||||||
if self.ins in self.INS_data_expected:
|
|
||||||
self.state = apdu_states.APDU_S_SEND_DATA
|
|
||||||
else:
|
|
||||||
self.state = apdu_states.APDU_S_DATA
|
|
||||||
else:
|
|
||||||
# check for 'only next byte' type ACK */
|
|
||||||
if c == ~(self.ins):
|
|
||||||
self.state = apdu_states.APDU_S_DATA_SINGLE
|
|
||||||
else:
|
|
||||||
# must be SW1
|
|
||||||
self.sw1 = c
|
|
||||||
self.buf.append(c)
|
|
||||||
self.state = apdu_states.APDU_S_SW2
|
|
||||||
|
|
||||||
def func_APDU_S_SW2(self, c):
|
|
||||||
self.buf.append(c)
|
|
||||||
self.sw2 = c
|
|
||||||
print("APDU:", HEX(self.ins), HEX(self.buf))
|
|
||||||
self.state = apdu_states.APDU_S_FIN
|
|
||||||
|
|
||||||
Apdu_S = {
|
|
||||||
apdu_states.APDU_S_CLA : func_APDU_S_CLA_P1_P2,
|
|
||||||
apdu_states.APDU_S_INS : func_APDU_S_INS,
|
|
||||||
apdu_states.APDU_S_P1 : func_APDU_S_CLA_P1_P2,
|
|
||||||
apdu_states.APDU_S_P2 : func_APDU_S_CLA_P1_P2,
|
|
||||||
apdu_states.APDU_S_P3 : func_APDU_S_P3,
|
|
||||||
apdu_states.APDU_S_SEND_DATA : func_APDU_S_DATA,
|
|
||||||
apdu_states.APDU_S_DATA : func_APDU_S_DATA,
|
|
||||||
apdu_states.APDU_S_DATA_SINGLE : func_APDU_S_DATA_SINGLE,
|
|
||||||
apdu_states.APDU_S_SW1 : func_APDU_S_SW1,
|
|
||||||
apdu_states.APDU_S_SW2 : func_APDU_S_SW2,
|
|
||||||
apdu_states.PTS : func_PTS }
|
|
||||||
|
|
||||||
INS_data_expected = [0xC0, 0xB0, 0xB2, 0x12, 0xF2]
|
|
||||||
|
|
||||||
def split(self, c):
|
|
||||||
# if c == 0xA0:
|
|
||||||
# self.state = apdu_states.APDU_S_CLA
|
|
||||||
print("state: ", self.state, hex(c))
|
|
||||||
self.Apdu_S[self.state](self, c)
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
msg1 = [0xA0, 0xA4, 0x00, 0x00, 0x02, 0xA4, 0x7F, 0x20, 0x9F, 0x16]
|
|
||||||
msg2 = [0xA0, 0xC0, 0x00, 0x00, 0x16, 0xC0,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x7F, 0x20,
|
|
||||||
0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x09, 0x91, 0x00, 0x17, 0x04, 0x00, 0x00, 0x00,
|
|
||||||
0x83, 0x8A, 0x90, 0x00]
|
|
||||||
msg3 = [0xa0, 0xc0, 0x00, 0x00, 0x16, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x7f,
|
|
||||||
0x20, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x91, 0x00, 0x17,
|
|
||||||
0x04, 0x00, 0x83, 0x8a, 0x83, 0x8a, 0x90]
|
|
||||||
|
|
||||||
pts = [0xff, 0x00, 0xff]
|
|
||||||
apdus = []
|
|
||||||
apdu = Apdu_splitter()
|
|
||||||
for c in pts + msg2 + msg1 + msg3:
|
|
||||||
apdu.split(c)
|
|
||||||
if apdu.state == apdu_states.APDU_S_FIN:
|
|
||||||
apdus.append(apdu)
|
|
||||||
apdu = Apdu_splitter()
|
|
||||||
for a in apdus:
|
|
||||||
print(HEX(a.buf))
|
|
||||||
@@ -1,102 +0,0 @@
|
|||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
from smartcard.scard import *
|
|
||||||
import smartcard.util
|
|
||||||
|
|
||||||
import array
|
|
||||||
|
|
||||||
from util import HEX
|
|
||||||
|
|
||||||
class SmartcardException(Exception):
|
|
||||||
pass
|
|
||||||
|
|
||||||
class SmartcardConnection:
|
|
||||||
# hcard, dwActiveProtocol, hcontext, reader
|
|
||||||
|
|
||||||
def __init__(self):
|
|
||||||
self.establish_context()
|
|
||||||
self.connect_card()
|
|
||||||
|
|
||||||
def getATR(self):
|
|
||||||
hresult, reader, state, protocol, atr = SCardStatus(self.hcard)
|
|
||||||
if hresult != SCARD_S_SUCCESS:
|
|
||||||
print 'failed to get status: ' + SCardGetErrorMessage(hresult)
|
|
||||||
print 'Reader:', reader
|
|
||||||
print 'State:', state
|
|
||||||
print 'Protocol:', protocol
|
|
||||||
print 'ATR:', HEX(atr)
|
|
||||||
return array.array('B', atr)
|
|
||||||
|
|
||||||
def reset_card(self):
|
|
||||||
hresult, self.dwActiveProtocol = SCardReconnect(self.hcard, SCARD_SHARE_SHARED,
|
|
||||||
SCARD_PROTOCOL_T0 | SCARD_PROTOCOL_T1, SCARD_RESET_CARD)
|
|
||||||
if hresult != SCARD_S_SUCCESS:
|
|
||||||
raise SmartcardException('Unable to retrieve Atr: ' +
|
|
||||||
SCardGetErrorMessage(hresult))
|
|
||||||
|
|
||||||
def connect_card(self):
|
|
||||||
hresult, self.hcard, self.dwActiveProtocol = SCardConnect(self.hcontext, self.reader,
|
|
||||||
SCARD_SHARE_SHARED, SCARD_PROTOCOL_T0 | SCARD_PROTOCOL_T1)
|
|
||||||
if hresult != SCARD_S_SUCCESS:
|
|
||||||
raise SmartcardException('Unable to connect: ' +
|
|
||||||
SCardGetErrorMessage(hresult))
|
|
||||||
print 'Connected with active protocol', self.dwActiveProtocol
|
|
||||||
|
|
||||||
def establish_context(self):
|
|
||||||
hresult, self.hcontext = SCardEstablishContext(SCARD_SCOPE_USER)
|
|
||||||
if hresult != SCARD_S_SUCCESS:
|
|
||||||
raise SmartcardException('Failed to establish context : ' +
|
|
||||||
SCardGetErrorMessage(hresult))
|
|
||||||
print 'Context established!'
|
|
||||||
|
|
||||||
hresult, readers = SCardListReaders(self.hcontext, [])
|
|
||||||
if hresult != SCARD_S_SUCCESS:
|
|
||||||
raise SmartcardException('Failed to list readers: ' +
|
|
||||||
SCardGetErrorMessage(hresult))
|
|
||||||
print 'PCSC Readers:', readers
|
|
||||||
|
|
||||||
if len(readers) < 1:
|
|
||||||
raise SmartcardException('No smart card readers')
|
|
||||||
|
|
||||||
self.reader = readers[0]
|
|
||||||
print "Using reader:", self.reader
|
|
||||||
|
|
||||||
def release_context(self):
|
|
||||||
hresult = SCardReleaseContext(self.hcontext)
|
|
||||||
if hresult != SCARD_S_SUCCESS:
|
|
||||||
raise SmartcardException('Failed to release context: ' +
|
|
||||||
SCardGetErrorMessage(hresult))
|
|
||||||
print 'Released context.'
|
|
||||||
|
|
||||||
def send_receive_cmd(self, cmd):
|
|
||||||
print("Cmd to SIM: " + HEX(cmd))
|
|
||||||
hresult, resp = SCardTransmit(self.hcard, self.dwActiveProtocol,
|
|
||||||
cmd.tolist())
|
|
||||||
if hresult != SCARD_S_SUCCESS:
|
|
||||||
raise SmartcardException('Failed to transmit: ' +
|
|
||||||
SCardGetErrorMessage(hresult))
|
|
||||||
print 'SIM Ans: ' + HEX(resp)
|
|
||||||
return array.array('B', resp)
|
|
||||||
|
|
||||||
def disconnect_card(self):
|
|
||||||
hresult = SCardDisconnect(self.hcard, SCARD_UNPOWER_CARD)
|
|
||||||
if hresult != SCARD_S_SUCCESS:
|
|
||||||
raise SmartcardException('Failed to disconnect: ' +
|
|
||||||
SCardGetErrorMessage(hresult))
|
|
||||||
print 'Disconnected'
|
|
||||||
|
|
||||||
|
|
||||||
def close(self):
|
|
||||||
self.disconnect_card()
|
|
||||||
self.release_context()
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
import constants
|
|
||||||
|
|
||||||
sm_con = SmartcardConnection()
|
|
||||||
sm_con.getATR()
|
|
||||||
print(sm_con.send_receive_cmd(constants.CMD_SEL_ROOT))
|
|
||||||
print(sm_con.send_receive_cmd(constants.CMD_SEL_FILE))
|
|
||||||
print(sm_con.send_receive_cmd(constants.CMD_GET_DATA))
|
|
||||||
sm_con.close()
|
|
||||||
@@ -1,74 +0,0 @@
|
|||||||
#!/usr/bin/env python
|
|
||||||
# This is only test code for testing the smartcard communication
|
|
||||||
# by sending a test command and printing the answer of the smartcard.
|
|
||||||
|
|
||||||
from smartcard.scard import *
|
|
||||||
import smartcard.util
|
|
||||||
|
|
||||||
SELECT = [0xA0, 0xA4, 0x00, 0x00, 0x02, 0x3F, 0x00]
|
|
||||||
COMMAND = [0x00, 0x00, 0x00, 0x00]
|
|
||||||
|
|
||||||
def select():
|
|
||||||
try:
|
|
||||||
hresult, hcontext = SCardEstablishContext(SCARD_SCOPE_USER)
|
|
||||||
if hresult != SCARD_S_SUCCESS:
|
|
||||||
raise Exception('Failed to establish context : ' +
|
|
||||||
SCardGetErrorMessage(hresult))
|
|
||||||
print 'Context established!'
|
|
||||||
|
|
||||||
try:
|
|
||||||
hresult, readers = SCardListReaders(hcontext, [])
|
|
||||||
if hresult != SCARD_S_SUCCESS:
|
|
||||||
raise Exception('Failed to list readers: ' +
|
|
||||||
SCardGetErrorMessage(hresult))
|
|
||||||
print 'PCSC Readers:', readers
|
|
||||||
|
|
||||||
if len(readers) < 1:
|
|
||||||
raise Exception('No smart card readers')
|
|
||||||
|
|
||||||
reader = readers[0]
|
|
||||||
print "Using reader:", reader
|
|
||||||
|
|
||||||
try:
|
|
||||||
hresult, hcard, dwActiveProtocol = SCardConnect(hcontext, reader,
|
|
||||||
SCARD_SHARE_SHARED, SCARD_PROTOCOL_T0 | SCARD_PROTOCOL_T1)
|
|
||||||
if hresult != SCARD_S_SUCCESS:
|
|
||||||
raise Exception('Unable to connect: ' +
|
|
||||||
SCardGetErrorMessage(hresult))
|
|
||||||
print 'Connected with active protocol', dwActiveProtocol
|
|
||||||
|
|
||||||
try:
|
|
||||||
hresult, response = SCardTransmit(hcard, dwActiveProtocol,
|
|
||||||
SELECT)
|
|
||||||
if hresult != SCARD_S_SUCCESS:
|
|
||||||
raise Exception('Failed to transmit: ' +
|
|
||||||
SCardGetErrorMessage(hresult))
|
|
||||||
print 'Select: ' + smartcard.util.toHexString(response,
|
|
||||||
smartcard.util.HEX)
|
|
||||||
hresult, response = SCardTransmit(hcard, dwActiveProtocol,
|
|
||||||
COMMAND)
|
|
||||||
if hresult != SCARD_S_SUCCESS:
|
|
||||||
raise Exception('Failed to transmit: ' +
|
|
||||||
SCardGetErrorMessage(hresult))
|
|
||||||
print 'Command: ' + smartcard.util.toHexString(response,
|
|
||||||
smartcard.util.HEX)
|
|
||||||
finally:
|
|
||||||
hresult = SCardDisconnect(hcard, SCARD_UNPOWER_CARD)
|
|
||||||
if hresult != SCARD_S_SUCCESS:
|
|
||||||
raise Exception('Failed to disconnect: ' +
|
|
||||||
SCardGetErrorMessage(hresult))
|
|
||||||
print 'Disconnected'
|
|
||||||
|
|
||||||
|
|
||||||
except Exception, message:
|
|
||||||
print "Exception:", message
|
|
||||||
|
|
||||||
finally:
|
|
||||||
hresult = SCardReleaseContext(hcontext)
|
|
||||||
if hresult != SCARD_S_SUCCESS:
|
|
||||||
raise Exception('Failed to release context: ' +
|
|
||||||
SCardGetErrorMessage(hresult))
|
|
||||||
print 'Released context.'
|
|
||||||
|
|
||||||
except Exception, message:
|
|
||||||
print "Exception:", message
|
|
||||||
@@ -1,42 +0,0 @@
|
|||||||
from array import array
|
|
||||||
|
|
||||||
SIM_WR = 0x1
|
|
||||||
SIM_RD = 0x82
|
|
||||||
SIM_INT = 0x83
|
|
||||||
|
|
||||||
PHONE_WR = 0x4
|
|
||||||
PHONE_RD = 0x85
|
|
||||||
PHONE_INT = 0x86
|
|
||||||
|
|
||||||
# Change FIDI
|
|
||||||
CMD_CHANGE_FIDI = array('B', [0xff, 0x00, 0xff])
|
|
||||||
CHANGE_FIDI = array('B', [0xff, 0xff, 0xff, 0x00, 0xff])
|
|
||||||
|
|
||||||
# Phone book
|
|
||||||
PHONE_BOOK_REQ = array('B', [0xa0, 0xb2, 0x01, 0x04, 0x1a])
|
|
||||||
PHONE_BOOK_RESP = array('B', [0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0xff, 0xff, 0xff, 0xff, 0x09, 0x81, 0x22, 0x22,
|
|
||||||
0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0xff, 0xff, 0xff, 0xff, 0x90, 0x00])
|
|
||||||
PHONE_BOOK_RESP_MITM = array('B', [0x6d, 0x69, 0x74, 0x6d, 0x20, 0x21, 0x21, 0x21, 0xff, 0xff, 0xff, 0xff, 0x09, 0x81, 0x22, 0x22,
|
|
||||||
0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0xff, 0xff, 0xff, 0xff, 0x90, 0x00])
|
|
||||||
PHONE_BOOK_RESP2 = array('B', [0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
|
||||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x90, 0x00])
|
|
||||||
PHONE_BOOK_RESP_MITM2 = array('B', [0x6d, 0x69, 0x74, 0x6d, 0x20, 0x21, 0x21, 0x21, 0xff, 0xff, 0xff, 0xff, 0x09, 0x81, 0x22, 0x22,
|
|
||||||
0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0xff, 0xff, 0xff, 0xff, 0x90, 0x00])
|
|
||||||
|
|
||||||
|
|
||||||
CMD_SEL_ROOT = array('B', [0xA0, 0xA4, 0x00, 0x00, 0x02, 0x3F, 0x00])
|
|
||||||
CMD_SEL_FILE = array('B', [0xA0, 0xA4, 0x00, 0x00, 0x02, 0x7F, 0x20])
|
|
||||||
CMD_GET_DATA = array('B', [0xA0, 0xC0, 0x00, 0x00, 0x16])
|
|
||||||
# SuperSIM ATR
|
|
||||||
ATR_SUPERSIM= array('B', [0x3B, 0x9A, 0x94, 0x00, 0x92, 0x02, 0x75, 0x93, 0x11, 0x00, 0x01, 0x02, 0x02, 0x19])
|
|
||||||
|
|
||||||
# Faster sysmocom SIM
|
|
||||||
ATR_SYSMOCOM1 = array('B', [0x3B, 0x99, 0x18, 0x00, 0x11, 0x88, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x60])
|
|
||||||
ATR_SYSMOCOM2 = array('B', [0x3B, 0x99, 0x11, 0x00, 0x11, 0x88, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x60])
|
|
||||||
ATR_SYSMOCOM3 = array('B', [0x3B, 0x99, 0x44, 0x00, 0x11, 0x88, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x60])
|
|
||||||
NEW_ATR = ATR_SYSMOCOM1
|
|
||||||
ATR_STRANGE_SIM = array('B', [0x3B, 0x0B, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x68, 0x2E, 0x00, 0x20, 0x68])
|
|
||||||
|
|
||||||
# USB errors
|
|
||||||
ERR_TIMEOUT = 110
|
|
||||||
ERR_NO_SUCH_DEV = 19
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import socket
|
|
||||||
import array
|
|
||||||
|
|
||||||
ip="127.0.0.1"
|
|
||||||
port=4729
|
|
||||||
sp=58621
|
|
||||||
gsmtap_hdr="\x02\x04\x04"+"\x00"*13
|
|
||||||
|
|
||||||
# FIXME: Is ATR something special?
|
|
||||||
|
|
||||||
def gsmtap_send_apdu(data):
|
|
||||||
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
|
||||||
s.connect((ip, port))
|
|
||||||
s.send(gsmtap_hdr+data.tostring())
|
|
||||||
s.close()
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
cmds = ("\x3B\x99\x18\x00\x11\x88\x22\x33\x44\x55\x66\x77\x60", # ATR
|
|
||||||
"\xa0\xa4\x00\x00\x02\x6f\x7e\x9f\x0f", # SELECT FILE
|
|
||||||
"\xa0\xd6\x00\x00\x0b\xff\xff\xff\xff\x09\xf1\x07\xff\xfe\x00\x03\x90\x00", # UPDATE BINARY
|
|
||||||
)
|
|
||||||
for cmd in cmds:
|
|
||||||
gsmtap_send_apdu(array.array('B', cmd))
|
|
||||||
@@ -1,98 +0,0 @@
|
|||||||
import usb.core
|
|
||||||
import usb.util
|
|
||||||
import array
|
|
||||||
|
|
||||||
from ccid_raw import SmartcardConnection
|
|
||||||
from smartcard_emulator import SmartCardEmulator
|
|
||||||
from gsmtap import gsmtap_send_apdu
|
|
||||||
|
|
||||||
from contextlib import closing
|
|
||||||
|
|
||||||
from util import HEX
|
|
||||||
from constants import *
|
|
||||||
from apdu_split import Apdu_splitter, apdu_states
|
|
||||||
|
|
||||||
from replace import replace
|
|
||||||
|
|
||||||
def pattern_match(inpt):
|
|
||||||
print("Matching inpt", inpt)
|
|
||||||
if (inpt == ATR_SYSMOCOM1) or (inpt == ATR_STRANGE_SIM):
|
|
||||||
print("ATR: ", inpt)
|
|
||||||
return NEW_ATR
|
|
||||||
elif (inpt == CMD_SEL_FILE):
|
|
||||||
print("CMD_SEL_FILE:", inpt)
|
|
||||||
return CMD_SEL_ROOT
|
|
||||||
elif (inpt == CMD_GET_DATA):
|
|
||||||
print("CMD_DATA:", inpt)
|
|
||||||
return CMD_SEL_ROOT
|
|
||||||
else:
|
|
||||||
return inpt
|
|
||||||
|
|
||||||
def poll_ep(dev, ep):
|
|
||||||
try:
|
|
||||||
return dev.read(ep, 64, 10)
|
|
||||||
except usb.core.USBError as e:
|
|
||||||
if e.errno != ERR_TIMEOUT:
|
|
||||||
raise
|
|
||||||
return None
|
|
||||||
|
|
||||||
def write_phone(dev, resp):
|
|
||||||
print("WR: ", HEX(resp))
|
|
||||||
dev.write(PHONE_WR, resp, 10)
|
|
||||||
|
|
||||||
def do_mitm(dev, sim_emul=True):
|
|
||||||
if sim_emul == True:
|
|
||||||
my_class = SmartCardEmulator
|
|
||||||
else:
|
|
||||||
my_class = SmartcardConnection
|
|
||||||
with closing(my_class()) as sm_con:
|
|
||||||
atr = sm_con.getATR()
|
|
||||||
|
|
||||||
apdus = []
|
|
||||||
apdu = Apdu_splitter()
|
|
||||||
|
|
||||||
while True:
|
|
||||||
cmd = poll_ep(dev, PHONE_INT)
|
|
||||||
if cmd is not None:
|
|
||||||
print("Int line ", HEX(cmd))
|
|
||||||
assert cmd[0] == ord('R')
|
|
||||||
# FIXME: restart card anyways?
|
|
||||||
# sm_con.reset_card()
|
|
||||||
print("Write atr: ", HEX(atr))
|
|
||||||
write_phone(dev, replace(atr))
|
|
||||||
apdus = []
|
|
||||||
apdu = Apdu_splitter()
|
|
||||||
|
|
||||||
cmd = poll_ep(dev, PHONE_RD)
|
|
||||||
if cmd is not None:
|
|
||||||
print("RD: ", HEX(cmd))
|
|
||||||
for c in cmd:
|
|
||||||
if apdu.state == apdu_states.APDU_S_FIN:
|
|
||||||
apdus.append(apdu)
|
|
||||||
gsmtap_send_apdu(apdu.buf)
|
|
||||||
apdu = Apdu_splitter()
|
|
||||||
|
|
||||||
apdu.split(c)
|
|
||||||
if apdu.state == apdu_states.APDU_S_FIN and apdu.pts_buf == [0xff, 0x00, 0xff]:
|
|
||||||
#sim_data = sm_con.send_receive_cmd(apdu.pts_buf)
|
|
||||||
#write_phone(dev, replace(array('B', sim_data)))
|
|
||||||
write_phone(dev, replace(array('B', apdu.pts_buf)))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if apdu.state == apdu_states.APDU_S_SW1:
|
|
||||||
if apdu.data is not None and len(apdu.data) == 0:
|
|
||||||
# FIXME: implement other ACK types
|
|
||||||
write_phone(dev, replace(array('B', [apdu.ins])))
|
|
||||||
apdu.split(apdu.ins)
|
|
||||||
else:
|
|
||||||
sim_data = sm_con.send_receive_cmd(apdu.buf)
|
|
||||||
write_phone(dev, replace(sim_data))
|
|
||||||
for c in sim_data:
|
|
||||||
apdu.split(c)
|
|
||||||
if apdu.state == apdu_states.APDU_S_SEND_DATA:
|
|
||||||
sim_data = sm_con.send_receive_cmd(replace(apdu.buf))
|
|
||||||
#sim_data.insert(0, apdu.ins)
|
|
||||||
write_phone(dev, replace(sim_data))
|
|
||||||
#apdu.state = apdu_states.APDU_S_SW1
|
|
||||||
for c in sim_data:
|
|
||||||
apdu.split(c)
|
|
||||||
@@ -1,74 +0,0 @@
|
|||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
from enum import Enum
|
|
||||||
|
|
||||||
# FIXME: response!
|
|
||||||
class pts_states(Enum):
|
|
||||||
PTSS = 0
|
|
||||||
PTS0 = 1
|
|
||||||
PTS1 = 2
|
|
||||||
PTS2 = 3
|
|
||||||
PTS3 = 4
|
|
||||||
PCK = 5
|
|
||||||
|
|
||||||
class Pts_splitter:
|
|
||||||
|
|
||||||
def __init__(self):
|
|
||||||
self.state = pts_states.PTSS
|
|
||||||
self.buf = []
|
|
||||||
|
|
||||||
def func_PTS_PTSS(self, ptss):
|
|
||||||
self.state = pts_states.PTS0
|
|
||||||
|
|
||||||
def func_PTS_PTS0(self, pts0):
|
|
||||||
self.pts0 = pts0
|
|
||||||
self.state = pts_states.PTS1
|
|
||||||
|
|
||||||
def func_PTS_PTS1(self, fidi):
|
|
||||||
print("pts0: ", self.pts0)
|
|
||||||
if (self.pts0 & 1<<4) != 0:
|
|
||||||
self.fidi = fidi
|
|
||||||
print("FiDi: ", fidi)
|
|
||||||
self.state = pts_states.PTS2
|
|
||||||
else:
|
|
||||||
self.PTS_S[pts_states.PTS2](self, c)
|
|
||||||
|
|
||||||
def func_PTS_PTS2(self, c):
|
|
||||||
if (self.pts0 & 1<<5) != 0:
|
|
||||||
print("ETU: ", c)
|
|
||||||
self.state = pts_states.PTS3
|
|
||||||
else:
|
|
||||||
self.PTS_S[pts_states.PTS3](self, c)
|
|
||||||
|
|
||||||
def func_PTS_PTS3(self, c):
|
|
||||||
if (self.pts0 & 1<<6) != 0:
|
|
||||||
print("RFU: ", c)
|
|
||||||
self.state = pts_states.PCK
|
|
||||||
else:
|
|
||||||
self.PTS_S[pts_states.PCK](self, c)
|
|
||||||
|
|
||||||
def func_PTS_PCK(self, c):
|
|
||||||
print("PCK: ", c)
|
|
||||||
self.state = pts_states.PCK
|
|
||||||
|
|
||||||
PTS_S = {
|
|
||||||
pts_states.PTSS : func_PTS_PTSS,
|
|
||||||
pts_states.PTS0 : func_PTS_PTS0,
|
|
||||||
pts_states.PTS1 : func_PTS_PTS1,
|
|
||||||
pts_states.PTS2 : func_PTS_PTS2,
|
|
||||||
pts_states.PTS3 : func_PTS_PTS3,
|
|
||||||
pts_states.PCK : func_PTS_PCK
|
|
||||||
}
|
|
||||||
|
|
||||||
def split(self, c):
|
|
||||||
self.PTS_S[self.state](self, c)
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
pts_msg1 = [0xff, 0x00, 0xff]
|
|
||||||
pts_msg_fidi = [0xff, (1<<4), 0x18, 0xff]
|
|
||||||
pts_msg_fidi_etu = [0xff, ((1<<4) | (1<<5)), 0x18, 0x01, 0xff]
|
|
||||||
pts = Pts_splitter()
|
|
||||||
for c in pts_msg1 + pts_msg_fidi + pts_msg_fidi_etu:
|
|
||||||
pts.split(c)
|
|
||||||
if (pts.state == pts_states.PCK):
|
|
||||||
pts = Pts_splitter()
|
|
||||||
Submodule usb_application/pysim deleted from 2fc205ceb9
@@ -1,46 +0,0 @@
|
|||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import array
|
|
||||||
from constants import *
|
|
||||||
|
|
||||||
|
|
||||||
# Address book entries
|
|
||||||
name = 'deine mudda'
|
|
||||||
phone = '0123456789abcdef'
|
|
||||||
|
|
||||||
def replace(data):
|
|
||||||
print(replace.last_req)
|
|
||||||
if data is None:
|
|
||||||
raise MITMReplaceError
|
|
||||||
else:
|
|
||||||
try:
|
|
||||||
if data[0] == 0xA0:
|
|
||||||
print("INS: ", hex(data[1]))
|
|
||||||
replace.last_req = data
|
|
||||||
return data
|
|
||||||
|
|
||||||
if data[0] == 0x3B:
|
|
||||||
return data
|
|
||||||
#print("*** Replace ATR")
|
|
||||||
#return array('B', NEW_ATR)
|
|
||||||
elif data[0] == 0x9F:
|
|
||||||
return data
|
|
||||||
# print("*** Replace return val")
|
|
||||||
# return array('B', [0x60, 0x00])
|
|
||||||
elif replace.last_req[1:5] == array('B', [0xB2, 0x01, 0x04, 0x1A]): # phone book request
|
|
||||||
print("*** Replace phone book")
|
|
||||||
# return array('B', [0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0xff, 0xff, 0xff, 0xff, 0x09, 0x81, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xff, 0xff, 0xff, 0xff, 0x90, 0x00])
|
|
||||||
resp = map(ord, name) + ([0xff]*(12-len(name))) + [len(name) + 1] + [0x81]
|
|
||||||
for x in range(1,len(phone)/2+1):
|
|
||||||
list.append(resp, int(phone[x*2-2:2*x:], 16))
|
|
||||||
resp += ([0xff]*(replace.last_req[4]-len(resp))) + [0x90, 0x00]
|
|
||||||
return array('B', resp)
|
|
||||||
except ValueError:
|
|
||||||
print("*** Value error! ")
|
|
||||||
return data
|
|
||||||
|
|
||||||
replace.last_req = array('B')
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
print("Replacing PHONE_BOOK_REQ", PHONE_BOOK_REQ, "with", replace(PHONE_BOOK_REQ))
|
|
||||||
print("Replacing PHONE_BOOK_RESP", PHONE_BOOK_RESP, "with", replace(PHONE_BOOK_RESP))
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
argparse==1.2.1
|
|
||||||
pyscard==1.6.12
|
|
||||||
pyusb==1.0.0b2
|
|
||||||
wsgiref==0.1.2
|
|
||||||
@@ -1,327 +0,0 @@
|
|||||||
[0m [?1l>
|
|
||||||
|
|
||||||
k./sniffer.py\Found device
|
|
||||||
Timeout
|
|
||||||
Timeout
|
|
||||||
Timeout
|
|
||||||
Timeout
|
|
||||||
Timeout
|
|
||||||
Timeout
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 3b 9a 94 00 92 02 75 93 11 00 01 02 02 19 a0 a4 00 00 02 a4 7f 20 9f 16 a0 c0 00 00 16 c0 00 00 00 00 7f 20 02 00 00 00 00 00 09 91 00 17
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 3b 9a 94 00 92 02 75 93 11 00 01 02 02 19 a0 a4 00 00 02 a4 7f 20 9f 16 a0 c0 00 00 16 c0 00 00 00 00 7f 20 02 00 00 00 00 00 09 91 00 17
|
|
||||||
00 00 02 a4 3f 00 9f 16 a0 a4 00 00 02 a4 7f 20 9f 16 a0 c0 00 00 16 c0 00 00 00 00 7f 20 02 00 00 00 00 00 09 91 00 17 04 00 83 8a 83 8a 90 00 a0 a4 00 00 02 a4 6f b7 94 04 a0 a4 00 00 02 a4
|
|
||||||
00 00 02 a4 3f 00 9f 16 a0 a4 00 00 02 a4 7f 20 9f 16 a0 c0 00 00 16 c0 00 00 00 00 7f 20 02 00 00 00 00 00 09 91 00 17 04 00 83 8a 83 8a 90 00 a0 a4 00 00 02 a4 6f b7 94 04 a0 a4 00 00 02 a4
|
|
||||||
7f ff ff ff 37 00 00 3f 06 91 2c a0 a4 00 00 02 a4 6f 7e 9f 0f a0 c0 00 00 0f c0 00 00 00 0b 6f 7e 04 00 11 ff 1f 01 02 00 00 91 2c a0 a4 00 00 02 a4 6f 07 9f 0f a0 c0 00 00 0f c0 00 00 00 09
|
|
||||||
7f ff ff ff 37 00 00 3f 06 91 2c a0 a4 00 00 02 a4 6f 7e 9f 0f a0 c0 00 00 0f c0 00 00 00 0b 6f 7e 04 00 11 ff 1f 01 02 00 00 91 2c a0 a4 00 00 02 a4 6f 07 9f 0f a0 c0 00 00 0f c0 00 00 00 09
|
|
||||||
a0 a4 00 00 02 a4 6f ad 9f 0f a0 b0 00 00 01 b0 00 91 2c a0 a4 00 00 02 a4 6f 07 9f 0f a0 b0 00 00 09 b0 08 99 10 07 32 19 42 88 91 91 2c a0 a4 00 00 02 a4 6f 7e 9f 0f a0 b0 00 00 0b b0 ff ff
|
|
||||||
a0 a4 00 00 02 a4 6f ad 9f 0f a0 b0 00 00 01 b0 00 91 2c a0 a4 00 00 02 a4 6f 07 9f 0f a0 b0 00 00 09 b0 08 99 10 07 32 19 42 88 91 91 2c a0 a4 00 00 02 a4 6f 7e 9f 0f a0 b0 00 00 0b b0 ff ff
|
|
||||||
2c a0 a4 00 00 02 a4 6f 20 9f 0f a0 b0 00 00 09 b0 40 75 d4 84 36 01 b4 00 01 91 2c a0 a4 00 00 02 a4 6f 30 9f 0f a0 c0 00 00 0f c0 00 00 00 2d 6f 30 04 00 11 ff ff 01 02 00 00 91 2c a0 b0 00
|
|
||||||
2c a0 a4 00 00 02 a4 6f 20 9f 0f a0 b0 00 00 09 b0 40 75 d4 84 36 01 b4 00 01 91 2c a0 a4 00 00 02 a4 6f 30 9f 0f a0 c0 00 00 0f c0 00 00 00 2d 6f 30 04 00 11 ff ff 01 02 00 00 91 2c a0 b0 00
|
|
||||||
0c b0 32 f4 03 32 f4 33 32 f4 01 ff ff ff 91 2c a0 a4 00 00 02 a4 6f 31 9f 0f a0 b0 00 00 01 b0 05 91 2c a0 a4 00 00 02 a4 6f 39 9f 0f a0 c0 00 00 0f c0 00 00 00 1e 6f 39 04 40 12 1f ff 01 02
|
|
||||||
0c b0 32 f4 03 32 f4 33 32 f4 01 ff ff ff 91 2c a0 a4 00 00 02 a4 6f 31 9f 0f a0 b0 00 00 01 b0 05 91 2c a0 a4 00 00 02 a4 6f 39 9f 0f a0 c0 00 00 0f c0 00 00 00 1e 6f 39 04 40 12 1f ff 01 02
|
|
||||||
01 02 00 00 91 2c a0 a4 00 00 02 a4 6f 48 94 04 a0 a4 00 00 02 a4 6f 10 94 04 a0 a4 00 00 02 a4 7f 10 9f 16 a0 a4 00 00 02 a4 6f 43 9f 0f a0 b0 00 00 02 b0 09 ff 91 2c a0 12 00 00 2c 12 d0 2a
|
|
||||||
01 02 00 00 91 2c a0 a4 00 00 02 a4 6f 48 94 04 a0 a4 00 00 02 a4 6f 10 94 04 a0 a4 00 00 02 a4 7f 10 9f 16 a0 a4 00 00 02 a4 6f 43 9f 0f a0 b0 00 00 02 b0 09 ff 91 2c a0 12 00 00 2c 12 d0 2a
|
|
||||||
a0 a4 00 00 02 a4 6f 11 94 04 a0 a4 00 00 02 a4 6f 39 9f 0f a0 c0 00 00 0f c0 00 00 00 1e 6f 39 04 40 12 1f ff 01 02 03 03 90 00 a0 b2 01 04 03 b2 00 00 00 90 00 a0 a4 00 00 02 a4 6f b7 94 04
|
|
||||||
a0 a4 00 00 02 a4 6f 11 94 04 a0 a4 00 00 02 a4 6f 39 9f 0f a0 c0 00 00 0f c0 00 00 00 1e 6f 39 04 40 12 1f ff 01 02 03 03 90 00 a0 b2 01 04 03 b2 00 00 00 90 00 a0 a4 00 00 02 a4 6f b7 94 04
|
|
||||||
a0 c0 00 00 0f c0 00 00 00 11 6f 46 04 00 0b ff ff 01 02 00 00 90 00 a0 b0 00 00 11 b0 01 4f 70 65 6e 42 53 43 ff ff ff ff ff ff ff ff ff 90 00 a0 a4 00 00 02 a4 6f 07 9f 0f a0 c0 00 00 0f c0
|
|
||||||
a0 c0 00 00 0f c0 00 00 00 11 6f 46 04 00 0b ff ff 01 02 00 00 90 00 a0 b0 00 00 11 b0 01 4f 70 65 6e 42 53 43 ff ff ff ff ff ff ff ff ff 90 00 a0 a4 00 00 02 a4 6f 07 9f 0f a0 c0 00 00 0f c0
|
|
||||||
a0 c0 00 00 0f c0 00 00 00 03 6f 37 04 00 12 ff ff 01 02 00 00 90 00 a0 b0 00 00 03 b0 00 00 00 90 00 a0 a4 00 00 02 a4 7f 10 9f 16 a0 a4 00 00 02 a4 6f 3c 9f 0f a0 c0 00 00 0f c0 00 00 1b 80
|
|
||||||
a0 c0 00 00 0f c0 00 00 00 03 6f 37 04 00 12 ff ff 01 02 00 00 90 00 a0 b0 00 00 03 b0 00 00 00 90 00 a0 a4 00 00 02 a4 7f 10 9f 16 a0 a4 00 00 02 a4 6f 3c 9f 0f a0 c0 00 00 0f c0 00 00 1b 80
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff 90 00 a0 a4 00 00 02 a4 7f 20 9f 16 a0 a4 00 00 02 a4 6f 41 9f 0f a0 c0 00 00 0f c0 00 00 00 05 6f 41 04 00 12 ff ff 01 02 00 00 90 00 a0 b0 00 00 05 b0 ff ff ff 00 00 90 00 a0 a4 00
|
|
||||||
ff ff ff 90 00 a0 a4 00 00 02 a4 7f 20 9f 16 a0 a4 00 00 02 a4 6f 41 9f 0f a0 c0 00 00 0f c0 00 00 00 05 6f 41 04 00 12 ff ff 01 02 00 00 90 00 a0 b0 00 00 05 b0 ff ff ff 00 00 90 00 a0 a4 00
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 03 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 03 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 05 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 05 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
a0 b2 07 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
a0 b2 07 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 08 04 b0 b2 00 ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 08 04 b0 b2 00 ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 0a 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 0a 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 0c 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 0c 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff 90 00 a0 b2 0e 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff 90 00 a0 b2 0e 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 11 04 b0 b2 00 ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 11 04 b0 b2 00 ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 13 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 13 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 15 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 15 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
a0 b2 17 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
a0 b2 17 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 18 04 b0 b2 00 ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 18 04 b0 b2 00 ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 1a 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 1a 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 1c 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 1c 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff 90 00 a0 b2 1e 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff 90 00 a0 b2 1e 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 21 04 b0 b2 00 ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 21 04 b0 b2 00 ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 23 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 23 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 25 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 25 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
a0 b2 27 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
a0 b2 27 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 28 04 b0 b2 00 ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 28 04 b0 b2 00 ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
00 00 00 50 6f 42 04 00 11 ff ff 01 02 01 28 90 00 a0 b2 01 04 28 b2 ff ff ff ff ff ff ff ff ff ff ff ff e1 ff ff ff ff ff ff ff ff ff ff ff ff 05 81 00 94 55 55 ff ff ff ff ff ff 00 00 00 90
|
|
||||||
00 00 00 50 6f 42 04 00 11 ff ff 01 02 01 28 90 00 a0 b2 01 04 28 b2 ff ff ff ff ff ff ff ff ff ff ff ff e1 ff ff ff ff ff ff ff ff ff ff ff ff 05 81 00 94 55 55 ff ff ff ff ff ff 00 00 00 90
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 a4 00 00 02 a4 7f 10 9f 16 a0 a4 00 00 02 a4 6f 3a 9f 0f a0 c0 00 00 0f c0 00 00 19 64 6f 3a 04 00 11 ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 a4 00 00 02 a4 7f 10 9f 16 a0 a4 00 00 02 a4 6f 3a 9f 0f a0 c0 00 00 0f c0 00 00 19 64 6f 3a 04 00 11 ff
|
|
||||||
ff ff ff ff ff ff ff ff ff 90 00 a0 b2 03 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 04 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff 90 00 a0 b2 03 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 04 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 07 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 08 04 1a b2 ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 07 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 08 04 1a b2 ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 0b 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 0c
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 0b 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 0c
|
|
||||||
00 a0 b2 0e 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 0f 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
00 a0 b2 0e 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 0f 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff 90 00 a0 b2 12 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 13 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff 90 00 a0 b2 12 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 13 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 16 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 17 04 1a b2 ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 16 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 17 04 1a b2 ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 1a 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 1b 04 1a
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 1a 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 1b 04 1a
|
|
||||||
b2 1d 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 1e 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
b2 1d 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 1e 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff 90 00 a0 b2 21 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 22 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff 90 00 a0 b2 21 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 22 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 25 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 26 04 1a b2 ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 25 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 26 04 1a b2 ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 29 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 2a 04 1a b2 ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 29 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 2a 04 1a b2 ff
|
|
||||||
04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 2d 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90
|
|
||||||
04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 2d 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90
|
|
||||||
ff ff ff 90 00 a0 b2 30 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 31 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff 90 00 a0 b2 30 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 31 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 34 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 35 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 34 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 35 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 38 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 39 04 1a b2 ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 38 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 39 04 1a b2 ff ff ff
|
|
||||||
b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 3c 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0
|
|
||||||
b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 3c 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0
|
|
||||||
ff 90 00 a0 b2 3f 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 40 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff 90 00 a0 b2 3f 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 40 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff 90 00 a0 b2 43 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 44 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff 90 00 a0 b2 43 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 44 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 47 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 48 04 1a b2 ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 47 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 48 04 1a b2 ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 4b 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 4c
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 4b 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 4c
|
|
||||||
00 a0 b2 4e 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 4f 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
00 a0 b2 4e 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 4f 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff 90 00 a0 b2 52 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 53 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff 90 00 a0 b2 52 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 53 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 56 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 57 04 1a b2 ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 56 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 57 04 1a b2 ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 5a 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 5b 04 1a
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 5a 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 5b 04 1a
|
|
||||||
b2 5d 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 5e 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
b2 5d 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 5e 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff 90 00 a0 b2 61 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 62 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff 90 00 a0 b2 61 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 62 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 65 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 66 04 1a b2 ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 65 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 66 04 1a b2 ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 69 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 6a 04 1a b2 ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 69 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 6a 04 1a b2 ff
|
|
||||||
04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 6d 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90
|
|
||||||
04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 6d 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90
|
|
||||||
ff ff ff 90 00 a0 b2 70 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 71 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff 90 00 a0 b2 70 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 71 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 74 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 75 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 74 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 75 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 78 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 79 04 1a b2 ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 78 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 79 04 1a b2 ff ff ff
|
|
||||||
b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 7c 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0
|
|
||||||
b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 7c 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0
|
|
||||||
ff 90 00 a0 b2 7f 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 80 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff 90 00 a0 b2 7f 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 80 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff 90 00 a0 b2 83 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 84 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff 90 00 a0 b2 83 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 84 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 87 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 88 04 1a b2 ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 87 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 88 04 1a b2 ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 8b 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 8c
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 8b 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 8c
|
|
||||||
00 a0 b2 8e 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 8f 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
00 a0 b2 8e 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 8f 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff 90 00 a0 b2 92 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 93 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff 90 00 a0 b2 92 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 93 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 96 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 97 04 1a b2 ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 96 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 97 04 1a b2 ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 9a 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 9b 04 1a
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 9a 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 9b 04 1a
|
|
||||||
b2 9d 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 9e 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
b2 9d 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 9e 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff 90 00 a0 b2 a1 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 a2 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff 90 00 a0 b2 a1 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 a2 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 a5 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 a6 04 1a b2 ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 a5 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 a6 04 1a b2 ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 a9 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 aa 04 1a b2 ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 a9 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 aa 04 1a b2 ff
|
|
||||||
04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 ad 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90
|
|
||||||
04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 ad 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90
|
|
||||||
ff ff ff 90 00 a0 b2 b0 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 b1 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff 90 00 a0 b2 b0 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 b1 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 b4 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 b5 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 b4 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 b5 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 b8 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 b9 04 1a b2 ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 b8 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 b9 04 1a b2 ff ff ff
|
|
||||||
b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 bc 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0
|
|
||||||
b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 bc 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0
|
|
||||||
ff 90 00 a0 b2 bf 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 c0 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff 90 00 a0 b2 bf 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 c0 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff 90 00 a0 b2 c3 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 c4 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff 90 00 a0 b2 c3 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 c4 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 c7 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 c8 04 1a b2 ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 c7 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 c8 04 1a b2 ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 cb 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 cc
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 cb 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 cc
|
|
||||||
00 a0 b2 ce 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 cf 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
00 a0 b2 ce 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 cf 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff 90 00 a0 b2 d2 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 d3 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff 90 00 a0 b2 d2 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 d3 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 d6 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 d7 04 1a b2 ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 d6 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 d7 04 1a b2 ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 da 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 db 04 1a
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 da 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 db 04 1a
|
|
||||||
b2 dd 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 de 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
b2 dd 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 de 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff 90 00 a0 b2 e1 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 e2 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff 90 00 a0 b2 e1 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 e2 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 e5 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 e6 04 1a b2 ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 e5 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 e6 04 1a b2 ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 e9 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 ea 04 1a b2 ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 e9 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 ea 04 1a b2 ff
|
|
||||||
04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 ed 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90
|
|
||||||
04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 ed 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90
|
|
||||||
ff ff ff 90 00 a0 b2 f0 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 f1 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff 90 00 a0 b2 f0 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 f1 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 f4 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 f5 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 f4 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 f5 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 f8 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 f9 04 1a b2 ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 f8 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 f9 04 1a b2 ff ff ff
|
|
||||||
a4 6f 3b 9f 0f a0 c0 00 00 0f c0 00 00 01 04 6f 3b 04 00 12 ff ff 01 02 01 1a 90 00 a0 b2 01 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2
|
|
||||||
a4 6f 3b 9f 0f a0 c0 00 00 0f c0 00 00 01 04 6f 3b 04 00 12 ff ff 01 02 01 1a 90 00 a0 b2 01 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2
|
|
||||||
90 00 a0 b2 04 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 05 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
90 00 a0 b2 04 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 05 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff 90 00 a0 b2 08 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 09 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff 90 00 a0 b2 08 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 09 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
|
||||||
00 00 00 34 6f 40 04 00 11 ff ff 01 02 01 1a 90 00 a0 b2 01 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 02 04 1a b2 ff ff ff ff ff ff ff
|
|
||||||
00 00 00 34 6f 40 04 00 11 ff ff 01 02 01 1a 90 00 a0 b2 01 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 02 04 1a b2 ff ff ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff 90 00 a0 b2 02 04 0d b2 ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 03 04 0d b2 ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 04 04 0d b2 ff ff ff ff ff
|
|
||||||
ff ff ff ff ff ff ff ff ff 90 00 a0 b2 02 04 0d b2 ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 03 04 0d b2 ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 04 04 0d b2 ff ff ff ff ff
|
|
||||||
a0 b2 01 04 0d b2 ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 02 04 0d b2 ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 03 04 0d b2 ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0
|
|
||||||
a0 b2 01 04 0d b2 ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 02 04 0d b2 ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 03 04 0d b2 ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0
|
|
||||||
00 11 ff ff 01 02 01 28 90 00 a0 dc 01 04 28 dc ff ff ff ff ff ff ff ff ff ff ff ff e1 ff ff ff ff ff ff ff ff ff ff ff ff 05 81 00 94 55 55 ff ff ff ff ff ff 00 00 00 90 00 a0 a4 00 00 02 a4
|
|
||||||
00 11 ff ff 01 02 01 28 90 00 a0 dc 01 04 28 dc ff ff ff ff ff ff ff ff ff ff ff ff e1 ff ff ff ff ff ff ff ff ff ff ff ff 05 81 00 94 55 55 ff ff ff ff ff ff 00 00 00 90 00 a0 a4 00 00 02 a4
|
|
||||||
Timeout
|
|
||||||
Timeout
|
|
||||||
Timeout
|
|
||||||
Timeout
|
|
||||||
Timeout
|
|
||||||
Timeout
|
|
||||||
Timeout
|
|
||||||
Timeout
|
|
||||||
Timeout
|
|
||||||
Timeout
|
|
||||||
Timeout
|
|
||||||
Timeout
|
|
||||||
Timeout
|
|
||||||
Timeout
|
|
||||||
Timeout
|
|
||||||
Timeout
|
|
||||||
Timeout
|
|
||||||
Timeout
|
|
||||||
Timeout
|
|
||||||
Timeout
|
|
||||||
Timeout
|
|
||||||
Timeout
|
|
||||||
Timeout
|
|
||||||
Timeout
|
|
||||||
Timeout
|
|
||||||
Timeout
|
|
||||||
Timeout
|
|
||||||
Timeout
|
|
||||||
Timeout
|
|
||||||
Timeout
|
|
||||||
^CBye
|
|
||||||
[1m[3m%[23m[1m[0m
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
// ONLY sample code:
|
|
||||||
Write msg
|
|
||||||
-I- pAPDU[0]=0x0
|
|
||||||
-I- pAPDU[1]=0xA4
|
|
||||||
-I- pAPDU[2]=0x0
|
|
||||||
-I- pAPDU[3]=0x0
|
|
||||||
-I- pAPDU[4]=0x2
|
|
||||||
-I- pAPDU[5]=0x3F
|
|
||||||
-I- wlength=7
|
|
||||||
-I- CASE=0x3 NeNc=0x2
|
|
||||||
-I- procByte: 0xA4
|
|
||||||
-I- HdlINS
|
|
||||||
-I- SW1=0x6E, SW2=0x0
|
|
||||||
|
|
||||||
|
|
||||||
// SIMTRACE:
|
|
||||||
-I- typ=0x6F
|
|
||||||
-I- APDU cmd: a0 a4 0 ..-I- pAPDU[0]=0xA0
|
|
||||||
-I- pAPDU[1]=0xA4
|
|
||||||
-I- pAPDU[2]=0x0
|
|
||||||
-I- pAPDU[3]=0x0
|
|
||||||
-I- pAPDU[4]=0x2
|
|
||||||
-I- pAPDU[5]=0x3F
|
|
||||||
-I- wlength=7
|
|
||||||
-I- CASE=0x3 NeNc=0x2
|
|
||||||
-I- procByte: 0xA4
|
|
||||||
-I- HdlINS
|
|
||||||
-I- SW1=0x94, SW2=0x4
|
|
||||||
|
|
||||||
@@ -1,51 +0,0 @@
|
|||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import argparse
|
|
||||||
import sniffer
|
|
||||||
import ccid
|
|
||||||
import ccid_select
|
|
||||||
import mitm
|
|
||||||
|
|
||||||
import usb.core
|
|
||||||
import usb.util
|
|
||||||
import sys
|
|
||||||
import time
|
|
||||||
|
|
||||||
def find_dev():
|
|
||||||
dev = usb.core.find(idVendor=0x1d50, idProduct=0x60e3)
|
|
||||||
if dev is None:
|
|
||||||
raise ValueError("Device not found")
|
|
||||||
else:
|
|
||||||
print("Found device")
|
|
||||||
return dev
|
|
||||||
|
|
||||||
# main code
|
|
||||||
def main():
|
|
||||||
parser = argparse.ArgumentParser()
|
|
||||||
# FIXME: config names instead of numbers
|
|
||||||
parser.add_argument("-C", "--conf", type=int, choices=[1, 2, 3, 4], help="Set USB config")
|
|
||||||
parser.add_argument("-s", "--sniff", help="Sniff communication!", action='store_true')
|
|
||||||
parser.add_argument("-S", "--select_file", help="Transmit SELECT cmd!", action='store_true')
|
|
||||||
parser.add_argument("-p", "--phone", help="Emulates simcard", action='store_true')
|
|
||||||
parser.add_argument("-m", "--mitm", help="Intercept communication (MITM)", action='store_true')
|
|
||||||
|
|
||||||
args = parser.parse_args()
|
|
||||||
print("args: ", args)
|
|
||||||
dev = find_dev()
|
|
||||||
|
|
||||||
if args.conf is not None:
|
|
||||||
dev.set_configuration(args.conf)
|
|
||||||
# Give pcsclite time to find the device
|
|
||||||
time.sleep(1)
|
|
||||||
if args.sniff is True:
|
|
||||||
sniffer.sniff(dev)
|
|
||||||
# FIXME: This command is test code and should be removed in near future:
|
|
||||||
if args.select_file is True:
|
|
||||||
ccid_select.select()
|
|
||||||
if args.phone is True:
|
|
||||||
mitm.do_mitm(dev, sim_emul=True)
|
|
||||||
if args.mitm is True:
|
|
||||||
mitm.do_mitm(dev, sim_emul=False)
|
|
||||||
return
|
|
||||||
|
|
||||||
main()
|
|
||||||
@@ -1,99 +0,0 @@
|
|||||||
chrysh@gearbox ..a_thesis/sysmocom_repo/usb_application (git)-[master] % ./simtrace.py -b :(
|
|
||||||
('args: ', Namespace(cmd=None, conf=None, read_bin=True, select_file=False, sniff=False))
|
|
||||||
pcsc: wait_for_card
|
|
||||||
Reading ...
|
|
||||||
pdu: a0b000000a
|
|
||||||
ICCID: 8949901701053518711
|
|
||||||
pdu: a0b0000009
|
|
||||||
IMSI: 901702391248819
|
|
||||||
SMSP: ffffffffffffffffffffffffe1ffffffffffffffffffffffff058100945555ffffffffffff000000
|
|
||||||
pdu: a0b0000002
|
|
||||||
ACC: ffff
|
|
||||||
MSISDN: Not available
|
|
||||||
Done !
|
|
||||||
|
|
||||||
chrysh@gearbox ..a_thesis/sysmocom_repo/usb_application (git)-[master] % ./simtrace.py -S
|
|
||||||
('args: ', Namespace(cmd=None, conf=None, read_bin=False, select_file=True, sniff=False))
|
|
||||||
Context established!
|
|
||||||
PCSC Readers: ['Gemalto USB Shell Token V2 00 00']
|
|
||||||
Using reader: Gemalto USB Shell Token V2 00 00
|
|
||||||
Connected with active protocol 1
|
|
||||||
Select: 0x6E 0x00
|
|
||||||
Command: 0x6E 0x00
|
|
||||||
Disconnected
|
|
||||||
Released context.
|
|
||||||
|
|
||||||
|
|
||||||
BLAUE SIM:
|
|
||||||
|
|
||||||
chrysh@gearbox ..a_thesis/sysmocom_repo/usb_application (git)-[master] % ./simtrace.py -b
|
|
||||||
('args: ', Namespace(cmd=None, conf=None, read_bin=True, select_file=False, sniff=False))
|
|
||||||
pcsc: wait_for_card
|
|
||||||
Reading ...
|
|
||||||
pdu: a0b000000a
|
|
||||||
ICCID: 8988211000000004534
|
|
||||||
pdu: a0b0000009
|
|
||||||
IMSI: Can't read, response code = 9804
|
|
||||||
SMSP: Can't read, response code = 9804
|
|
||||||
pdu: a0b0000042
|
|
||||||
HPLMN: Can't read, response code = 9804
|
|
||||||
pdu: a0b0000002
|
|
||||||
ACC: Can't read, response code = 9804
|
|
||||||
MSISDN: Can't read, response code = 9804
|
|
||||||
Done !
|
|
||||||
|
|
||||||
|
|
||||||
chrysh@gearbox ..a_thesis/sysmocom_repo/usb_application (git)-[master] % ./simtrace.py -S
|
|
||||||
('args: ', Namespace(cmd=None, conf=None, read_bin=False, select_file=True, sniff=False))
|
|
||||||
Context established!
|
|
||||||
PCSC Readers: ['Gemalto USB Shell Token V2 00 00']
|
|
||||||
Using reader: Gemalto USB Shell Token V2 00 00
|
|
||||||
Connected with active protocol 1
|
|
||||||
Select: 0x6E 0x00
|
|
||||||
Command: 0x6D 0x00
|
|
||||||
Disconnected
|
|
||||||
Released context.
|
|
||||||
|
|
||||||
|
|
||||||
WEISSE SIM:
|
|
||||||
|
|
||||||
chrysh@gearbox ..a_thesis/sysmocom_repo/usb_application (git)-[master] % ./simtrace.py -S
|
|
||||||
('args: ', Namespace(cmd=None, conf=None, read_bin=False, select_file=True, sniff=False))
|
|
||||||
Context established!
|
|
||||||
PCSC Readers: ['Gemalto USB Shell Token V2 01 00']
|
|
||||||
Using reader: Gemalto USB Shell Token V2 01 00
|
|
||||||
Connected with active protocol 1
|
|
||||||
Select: 0x6E 0x00
|
|
||||||
Command: 0x6E 0x00
|
|
||||||
Disconnected
|
|
||||||
Released context.
|
|
||||||
|
|
||||||
chrysh@gearbox ..a_thesis/sysmocom_repo/usb_application (git)-[master] % ./simtrace.py -b
|
|
||||||
('args: ', Namespace(cmd=None, conf=None, read_bin=True, select_file=False, sniff=False))
|
|
||||||
pcsc: wait_for_card
|
|
||||||
Reading ...
|
|
||||||
pdu: a0b000000a
|
|
||||||
ICCID: 8949901701053518711
|
|
||||||
pdu: a0b0000009
|
|
||||||
IMSI: 901702391248819
|
|
||||||
ßSMSP: ffffffffffffffffffffffffe1ffffffffffffffffffffffff058100945555ffffffffffff000000
|
|
||||||
pdu: a0b000002d
|
|
||||||
HPLMN: 09f107ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
|
||||||
('Unexpected error:', <type 'exceptions.NameError'>)
|
|
||||||
pdu: a0b0000002
|
|
||||||
ACC: ffff
|
|
||||||
MSISDN: Not available
|
|
||||||
Done !
|
|
||||||
|
|
||||||
|
|
||||||
WEISE SIM mit SELECT vom file:
|
|
||||||
chrysh@gearbox ..a_thesis/sysmocom_repo/usb_application (git)-[master] % ./simtrace.py -S
|
|
||||||
('args: ', Namespace(cmd=None, conf=None, read_bin=False, select_file=True, sniff=False))
|
|
||||||
Context established!
|
|
||||||
PCSC Readers: ['Gemalto USB Shell Token V2 01 00']
|
|
||||||
Using reader: Gemalto USB Shell Token V2 01 00
|
|
||||||
Connected with active protocol 1
|
|
||||||
Select: 0x9F 0x16
|
|
||||||
Command: 0x6E 0x00
|
|
||||||
Disconnected
|
|
||||||
Released context.
|
|
||||||
@@ -1,42 +0,0 @@
|
|||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import constants
|
|
||||||
import array
|
|
||||||
|
|
||||||
INS = 1
|
|
||||||
LEN = 4
|
|
||||||
|
|
||||||
class SmartCardEmulator:
|
|
||||||
def getATR(self):
|
|
||||||
return array.array('B', constants.ATR_SYSMOCOM1)
|
|
||||||
|
|
||||||
def send_receive_cmd(self, cmd):
|
|
||||||
if cmd[INS] == 0xA4:
|
|
||||||
resp = [0x9F, 0x16]
|
|
||||||
elif cmd == [0xff, 0x00, 0xff]:
|
|
||||||
resp = cmd
|
|
||||||
elif len(cmd) == 5 and cmd[INS] == 0xC0:
|
|
||||||
data = self.ans_from_len[cmd[LEN]]
|
|
||||||
SW = [0x90, 0x00]
|
|
||||||
resp = data + SW # Respond with INS byte
|
|
||||||
#state = WAIT_RST
|
|
||||||
else:
|
|
||||||
print("Unknown cmd")
|
|
||||||
resp = [0x60, 0x00]
|
|
||||||
|
|
||||||
print("Cmd, resp: ")
|
|
||||||
print("".join("%02x " % b for b in cmd))
|
|
||||||
print("".join("%02x " % b for b in resp))
|
|
||||||
|
|
||||||
return array.array('B', resp)
|
|
||||||
|
|
||||||
def reset_card():
|
|
||||||
pass
|
|
||||||
|
|
||||||
def close(self):
|
|
||||||
pass
|
|
||||||
|
|
||||||
ans_from_len = {0x16: [0x00, 0x00, 0x00, 0x00, 0x7F, 0x20, 0x02, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x09, 0x91, 0x00, 0x17,
|
|
||||||
0x04, 0x00, 0x83, 0x8A, 0x83, 0x8A],
|
|
||||||
}
|
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
#!/usr/bin/env python3
|
|
||||||
|
|
||||||
import usb.core
|
|
||||||
import usb.util
|
|
||||||
import sys
|
|
||||||
import array
|
|
||||||
|
|
||||||
from apdu_split import Apdu_splitter, apdu_states
|
|
||||||
from gsmtap import gsmtap_send_apdu
|
|
||||||
|
|
||||||
from constants import PHONE_RD, ERR_TIMEOUT, ERR_NO_SUCH_DEV
|
|
||||||
|
|
||||||
# main code
|
|
||||||
def sniff(dev):
|
|
||||||
ans = array.array('B', [])
|
|
||||||
|
|
||||||
apdus = []
|
|
||||||
apdu = Apdu_splitter()
|
|
||||||
|
|
||||||
while True:
|
|
||||||
try:
|
|
||||||
ans += dev.read(PHONE_RD, 64, 1000)
|
|
||||||
except KeyboardInterrupt:
|
|
||||||
print("Bye")
|
|
||||||
sys.exit()
|
|
||||||
except Exception as e:
|
|
||||||
if e.errno != ERR_TIMEOUT and e.errno != ERR_NO_SUCH_DEV:
|
|
||||||
raise
|
|
||||||
print e
|
|
||||||
|
|
||||||
if len(ans) >= 1:
|
|
||||||
# print("".join("%02x " % b for b in ans))
|
|
||||||
for c in ans:
|
|
||||||
apdu.split(c)
|
|
||||||
if apdu.state == apdu_states.APDU_S_FIN:
|
|
||||||
apdus.append(apdu)
|
|
||||||
gsmtap_send_apdu(apdu.buf)
|
|
||||||
apdu = Apdu_splitter()
|
|
||||||
ans = array.array('B', [])
|
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
import usb.core
|
|
||||||
import usb.util
|
|
||||||
import sys
|
|
||||||
|
|
||||||
dev = usb.core.find(idVendor=0x03eb, idProduct=0x6004)
|
|
||||||
|
|
||||||
if dev is None:
|
|
||||||
raise ValueError("Device not found")
|
|
||||||
else:
|
|
||||||
print("Found device")
|
|
||||||
|
|
||||||
dev.set_configuration()
|
|
||||||
|
|
||||||
cfg = dev.get_active_configuration()
|
|
||||||
print("Active config: ")
|
|
||||||
print(cfg)
|
|
||||||
print("NumConfigs: " + str(dev.bNumConfigurations))
|
|
||||||
#print(cfg.configurations)
|
|
||||||
|
|
||||||
|
|
||||||
print("***")
|
|
||||||
for cfg in dev:
|
|
||||||
print("*** Next configs: ")
|
|
||||||
print(cfg)
|
|
||||||
|
|
||||||
print("~~~~~~")
|
|
||||||
#cfg = usb.util.find_descriptor(dev, bConfiguration=0)
|
|
||||||
|
|
||||||
# nur config(1) funktioniert
|
|
||||||
# config(0): Device haengt
|
|
||||||
# config(2): usb.core.USBError: [Errno 2] Entity not found
|
|
||||||
print("dev.set_configuration(" + sys.argv[1] + ")")
|
|
||||||
dev.set_configuration(int(sys.argv[1]))
|
|
||||||
|
|
||||||
print("*** New config: ")
|
|
||||||
cfg = dev.get_active_configuration()
|
|
||||||
print(cfg)
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
|
|
||||||
def HEX(vals):
|
|
||||||
if vals is not None:
|
|
||||||
if type(vals) is int:
|
|
||||||
return "%.2x"%vals
|
|
||||||
return ' '.join('%.2x'%x for x in vals)
|
|
||||||
return ''
|
|
||||||
Reference in New Issue
Block a user