�
��^i�� � � � d Z ddlmZ ddlZddlZddlZddlZddlZdZdZ ej
d dk Zej
d dk Zej
dd� dk Z
erefZefZefZeZeZej ZnefZeefZeej fZeZeZej � d � � r ed
� � ZnE G d� de� � Z e! e � � � � ed
� � Zn# e"$ r ed
� � ZY nw xY w[ e
rddl#m$Z$ ndZ$d� Z%d� Z& G d� de� � Z' G d� de'� � Z( G d� dej) � � Z* G d� de'� � Z+ G d� de� � Z, e,e-� � Z. G d� de*� � Z/g e+dddd� � � e+d d!d"d#d � � � e+d$d!d!d%d$� � � e+d&d'd"d(d&� � � e+d)d'd*� � � e+d+d!d"d,d+� � � e+d-d.d.d/d-� � � e+d0d.d.d-d0� � � e+d1d2d3� � � e+d4d'd"d5d4� � � e+d6d'e
rd7nd8d9� � � e+d:d'd;� � � e+dd?� � � e+ddd� � � e+d@d@dA� � � e+dBdBdA� � � e+dCdCdA� � � e+d5d'd"d5d4� � � e+dDd!d"dEdD� � � e+dFd!d!dGdF� � � e(d"d'� � � e(dHdI� � � e(dJdAej
dKk rdLndA� � � e(dMdN� � � e(dOdPdQ� � � e(dRdSdT� � � e(dUdVej
dWk rdUndX� � � e(dYdZd[� � � e(d\d]d^� � � e(d_d`da� � � e(dbdcdd� � � e(dedfdg� � � e(dhdidj� � � e(dkdldm� � � e(dndodp� � � e(dqdrds� � � e(dtdudv� � � e(dwdwdx� � � e(dydydx� � � e(dzdzdx� � � e(d{d{d|� � � e(d}d~� � � e(dd�� � � e(d�d�� � � e(dXd�dX� � � e(d�d�� � � e(d�d�d�� � � e(d�d�d�� � � e(d�d�d�� � � e(d�d�d�� � � e(d�d�d�� � � e(d�d�d�� � � e(d�d�d�� � � e(d�d�d�� � � e(d�d�d�� � � e(d�d�d�� � � e(d�d�d�� � � e(d�d�d�� � � e(d�d�d�� � � e(d�d�d�� � � e(d�e-d�z d�� � � e(d�e-d�z d�� � � e(d�e-d�z e-d�z � � � e(d�d�d�� � � e(d�d�d�� � � e(d�d�d�� � �Z0ej d�k re0 e(d�d�� � gz
Z0e0D ]>Z1 e2e/e1j3 e1� � e4e1e(� � re.�5 e1d�e1j3 z � � �?[1e0e/_0 e/e-d�z � � Z6e.�5 e6dĦ � G dń d�e*� � Z7 e+d�d�d�� � e+d�d�d�� � e+d�d�d�� � e+d�d�d�� � e+d�d�d�� � e+d�d�d�� � e+d�d�d�� � e+d�d�d�� � e+d�d�d�� � e+d�d�d�� � e+d?d�d�� � e+d�d�d�� � e+d�d�d�� � e+d�d�d�� � e+d�d�d�d�dԦ � e+d�d�d�� � e+d�d�d�� � e+d�d�d�� � e+d�d�d�� � e+d�d�d�� � e+d�d�d�� � e+d�d�d�� � e+d�d�d�� � e+d�d�d�� � e+d�d�d�� � gZ8e8D ]Z1 e2e7e1j3 e1� � �[1e8e7_0 e.�5 e7e-d�z � � d�d� � G d� d�e*� � Z9 e+d�d�d�� � e+d�d�d�� � e+d�d�d�� � gZ:e:D ]Z1 e2e9e1j3 e1� � �[1e:e9_0 e.�5 e9e-d�z � � d�d� � G d� d�e*� � Z;g e+d�d�d�� � � e+d�d�d�� � � e+d�d�d�� � � e+d�d�d�� � � e+d�d�d�� � � e+d�d�d�� � � e+d�d�d�� � � e+d�d�d�� � � e+d�d�d�� � � e+d�d�d�� � � e+d�d�d�� � � e+d�d�d�� � � e+d�d�d�� � � e+d�d�d�� � � e+d�d�d�� � � e+d�d�d�� � � e+d�d�d�� � � e+d�d�d�� � � e+d�d�d�� � � e+�d d�d�� � � e+�dd�d�� � � e+�dd�d�� � � e+�dd�d�� � � e+�dd�d�� � � e+�dd�d�� � � e+�dd�d�� � � e+�dd�d�� � � e+�dd�d�� � � e+�d d�d�� � � e+�d
d�d�� � � e+�dd�d�� � � e+�dd�d�� � � e+�d
d�d�� � � e+�dd�d�� � � e+�dd�d�� � �Z