AI ='Max partial L must be an integer'#line:1
AH ='Rmax must be greater than Rmin'#line:2
AG ='upper left'#line:3
AF ='DCS $|f(\\theta)|^2$ (bohr$^2$)'#line:4
AE ='Inclination angle $\\theta$ (degrees)'#line:5
AD ='Evolve time'#line:6
AC ='Scattering plot'#line:7
A3 ='Max Energy must be greater than Min Energy'#line:8
A2 ='Total'#line:9
A1 ='Atom seperation $R$ (bohr)'#line:10
A0 ='Energy scan'#line:11
z ='Plot'#line:12
y ='Plotting prompts'#line:13
l ='Integral cross section'#line:14
s ='Partial L must be an integer'#line:15
r =None #line:16
q ='$L=$'#line:17
p ='black'#line:18
o ='Energy $E$ (cm$^{-1}$)'#line:19
n ='$|\\psi|^2$'#line:20
m ='red'#line:21
k ='Im($\\psi$)'#line:22
j ='orange'#line:23
i ='Re($\\psi$)'#line:24
h =min #line:25
g =str #line:26
a ='complex'#line:27
Z ='upper right'#line:28
Y =enumerate #line:29
W ='face'#line:30
V ='$E$'#line:31
U ='dashed'#line:32
T ='grey'#line:33
S =round #line:34
R ='off'#line:35
Q ='equal'#line:36
P ='blue'#line:37
E ='W'#line:38
L =max #line:39
K =range #line:40
J ='Warning'#line:41
I =int #line:42
H =len #line:43
G =False #line:44
F =True #line:45
D =float #line:46
import numpy as A ,tkinter as B #line:47
from tkinter import ttk as b #line:48
from scipy .special import spherical_jn as t ,spherical_yn as A4 ,eval_legendre as c #line:49
from matplotlib .figure import Figure #line:50
from matplotlib .backends .backend_tkagg import FigureCanvasTkAgg as AJ #line:51
from matplotlib .animation import FuncAnimation as O #line:52
A5 =1822.8885 #line:53
C =1 /219474.63137098 #line:54
AK =4.0026032497 *A5 #line:55
AL =131.293 *A5 #line:56
M =1 /(1 /AK +1 /AL )#line:57
X =20.41 *C #line:58
AM =7.52 #line:59
AN =.8931385 #line:60
N =[0 ,0 ]#line:61
A6 =[1 ,0 ,4 ,30 ,.1 ,3 ]#line:62
A7 =[1 ,0 ,1.3 ,1.5 ]#line:63
A8 =[1.4 ,13 ,.1 ,10 ]#line:64
class AO (B .Tk ):#line:65
	def __init__ (OO0O00OOO0OO0OOO0 ):super ().__init__ ();OO0O00OOO0OO0OOO0 .title ('Quantum scattering of He+Xe');OO0O00OOO0OO0OOO0 .create_layout ()#line:66
	def create_layout (OO000000OO0O0OOOO ):OO000000OO0O0OOOO .create_tabs ();OO000000OO0O0OOOO .create_ics_tab ();OO000000OO0O0OOOO .create_dcs_tab ();OO000000OO0O0OOOO .create_2D_tab ()#line:67
	def create_tabs (OO00O00OO0OO0O00O ):OO00O00OO0OO0O00O .tabControl =b .Notebook (OO00O00OO0OO0O00O );OO00O00OO0OO0O00O .tabTotal =b .Frame (OO00O00OO0OO0O00O .tabControl );OO00O00OO0OO0O00O .tabDiff =b .Frame (OO00O00OO0OO0O00O .tabControl );OO00O00OO0OO0O00O .tab2D =b .Frame (OO00O00OO0OO0O00O .tabControl );OO00O00OO0OO0O00O .tabControl .add (OO00O00OO0OO0O00O .tabTotal ,text ='Radial Wave Function');OO00O00OO0OO0O00O .tabControl .add (OO00O00OO0OO0O00O .tabDiff ,text ='Differential Cross Section');OO00O00OO0OO0O00O .tabControl .add (OO00O00OO0OO0O00O .tab2D ,text ='2D Wave Function');OO00O00OO0OO0O00O .tabControl .pack (expand =1 ,fill ='both')#line:68
	def create_ics_tab (O0O0O0O00O0OOO0O0 ):O0OO00O0O0OO00000 ,O0O0O000OOOO000O0 ,O0OO00O0OO0O00O00 ,OOOOOOO00O000O000 =O0O0O0O00O0OOO0O0 .create_input_frame (O0O0O0O00O0OOO0O0 .tabTotal );O0OO000O000OOO000 ,O00OO000OO0O0O0O0 =O0O0O0O00O0OOO0O0 .create_energy_scan_input_frame (O0O0O0O00O0OOO0O0 .tabTotal );O0O0O0O00O0OOO0O0 .clickReset (A6 ,O0OO00O0O0OO00000 ,O0O0O000OOOO000O0 ,O0OO00O0OO0O00O00 ,OOOOOOO00O000O000 ,O0OO000O000OOO000 ,O00OO000OO0O0O0O0 );OOO0000O0O0O0O0O0 =O0O0O0O00O0OOO0O0 .create_plot_frame (O0O0O0O00O0OOO0O0 .tabTotal ,AC ,1 ,0 );OO0O00O000O0000O0 =O0O0O0O00O0OOO0O0 .create_plot_frame (O0O0O0O00O0OOO0O0 .tabTotal ,l ,1 ,3 );OO00O0OO00O0O0OOO ,OO0O00OO0O0OO0OO0 ,O0OOO00O00O0OOO00 =O0O0O0O00O0OOO0O0 .create_figure (OOO0000O0O0O0O0O0 );O00OOO0OO0OOOOO00 ,OOOOO00O000O00000 ,OO0OOOOO000O00O0O =O0O0O0O00O0OOO0O0 .create_figure (OO0O00O000O0000O0 );O000OOO00O00OO00O =O0O0O0O00O0OOO0O0 .create_prompt_frame_ics (O0O0O0O00O0OOO0O0 .tabTotal ,O0OO00O0O0OO00000 ,O0O0O000OOOO000O0 ,O0OO00O0OO0O00O00 ,OOOOOOO00O000O000 ,O0OO000O000OOO000 ,O00OO000OO0O0O0O0 ,OO00O0OO00O0O0OOO ,OO0O00OO0O0OO0OO0 ,O0OOO00O00O0OOO00 ,O00OOO0OO0OOOOO00 ,OOOOO00O000O00000 ,OO0OOOOO000O00O0O );O0O0O0O00O0OOO0O0 .plotICS (OO0OOOOO000O00O0O ,D (O0OO00O0O0OO00000 .get ()),D (O0OO00O0OO0O00O00 .get ()),D (OOOOOOO00O000O000 .get ()));O0O0O0O00O0OOO0O0 .plotICS_L (OO0OOOOO000O00O0O ,D (O0O0O000OOOO000O0 .get ()),D (O0OO00O0OO0O00O00 .get ()),D (OOOOOOO00O000O000 .get ()));O0O0O0O00O0OOO0O0 .clickPlot (OO00O0OO00O0O0OOO ,O0OOO00O00O0OOO00 ,O00OOO0OO0OOOOO00 ,OO0OOOOO000O00O0O ,O000OOO00O00OO00O ,D (O0OO00O0O0OO00000 .get ()),D (O0O0O000OOOO000O0 .get ()),D (O0OO00O0OO0O00O00 .get ()),D (OOOOOOO00O000O000 .get ()));O0O0O0O00O0OOO0O0 .create_other_frame (O0O0O0O00O0OOO0O0 .tabTotal ,lambda :O0O0O0O00O0OOO0O0 .clickReset (A6 ,O0OO00O0O0OO00000 ,O0O0O000OOOO000O0 ,O0OO00O0OO0O00O00 ,OOOOOOO00O000O000 ,O0OO000O000OOO000 ,O00OO000OO0O0O0O0 ));O00000O00OOO0O000 ='This interface visualizes the quantum scattering of He and Xe atoms. All tabs show the total elastic cross section (ICS). This tab contains the radial wave function as well. Check especially the shape resonances for L=6,7,8 at 1.4, 4.1 and 7.3 cm⁻¹.';O0O0O0O00O0OOO0O0 .create_info_frame (O0O0O0O00O0OOO0O0 .tabTotal ,O00000O00OOO0O000 )#line:69
	def create_dcs_tab (OOO00OOO0O00OO0OO ):OOOOO00OO000OOOO0 ,O00OO0O00O000O00O =OOO00OOO0O00OO0OO .create_input_frame (OOO00OOO0O00OO0OO .tabDiff ,isICS =G );O00OO0O000O0OOOO0 ,OO00OO000O0O0OOO0 =OOO00OOO0O00OO0OO .create_energy_scan_input_frame (OOO00OOO0O00OO0OO .tabDiff );OOO00OOO0O00OO0OO .clickReset (A7 ,OOOOO00OO000OOOO0 ,O00OO0O00O000O00O ,O00OO0O000O0OOOO0 ,OO00OO000O0O0OOO0 );OOO0OO0OO0OOO000O =OOO00OOO0O00OO0OO .create_plot_frame (OOO00OOO0O00OO0OO .tabDiff ,AC ,1 ,0 );OO0OO0OOOOO00O00O =OOO00OOO0O00OO0OO .create_plot_frame (OOO00OOO0O00OO0OO .tabDiff ,l ,1 ,3 );OO0000OOOOO00O00O ,OOOOOO0OOOOOO000O ,O00O00000O00O0O00 =OOO00OOO0O00OO0OO .create_figure (OOO0OO0OO0OOO000O );O0000OOOO000O000O ,O000OO0000OO000O0 ,O0O0000OO000OO0OO =OOO00OOO0O00OO0OO .create_figure (OO0OO0OOOOO00O00O );OOO00OOO0O00OO0OO .create_prompt_frame_dcs (OOO00OOO0O00OO0OO .tabDiff ,OOOOO00OO000OOOO0 ,O00OO0O00O000O00O ,O00OO0O000O0OOOO0 ,OO00OO000O0O0OOO0 ,OO0000OOOOO00O00O ,OOOOOO0OOOOOO000O ,O00O00000O00O0O00 ,O0000OOOO000O000O ,O000OO0000OO000O0 ,O0O0000OO000OO0OO );OOO00OOO0O00OO0OO .plotDCS (O00O00000O00O0O00 ,D (OOOOO00OO000OOOO0 .get ())*C ,D (O00OO0O00O000O00O .get ()));OOO00OOO0O00OO0OO .plotICS (O0O0000OO000OO0OO ,D (OOOOO00OO000OOOO0 .get ()),4 ,15 );OOO00OOO0O00OO0OO .plotICS_L (O0O0000OO000OO0OO ,D (O00OO0O00O000O00O .get ()),4 ,15 );OOO00OOO0O00OO0OO .create_other_frame (OOO00OOO0O00OO0OO .tabDiff ,lambda :OOO00OOO0O00OO0OO .clickReset (A7 ,OOOOO00OO000OOOO0 ,O00OO0O00O000O00O ,O00OO0O000O0OOOO0 ,OO00OO000O0O0OOO0 ));OO0OO00OO0O000OOO ='This tab contains the differential cross section (DCS) with θ=0° and θ=180° being forward and backward scattering, respectively. Check especially the symmetry of the DCS for the resonances L=6,7,8 at 1.4, 4.1 and 7.3 cm⁻¹.';OOO00OOO0O00OO0OO .create_info_frame (OOO00OOO0O00OO0OO .tabDiff ,OO0OO00OO0O000OOO )#line:70
	def create_2D_tab (OO00000OO0O00OOOO ):OO0O000000OOO000O ,O00000O0O0OOOO0OO =OO00000OO0O00OOOO .create_input_frame (OO00000OO0O00OOOO .tab2D ,isICS =G ,is2D =F );OO0O0O0O0OOOO0O0O ,O0O000O00O000O0OO =OO00000OO0O00OOOO .create_energy_scan_input_frame (OO00000OO0O00OOOO .tab2D );OO00000OO0O00OOOO .clickReset (A8 ,OO0O000000OOO000O ,O00000O0O0OOOO0OO ,OO0O0O0O0OOOO0O0O ,O0O000O00O000O0OO );OO00OOO00OOOOO000 =OO00000OO0O00OOOO .create_plot_frame (OO00000OO0O00OOOO .tab2D ,'|Ψ|² and Re(Ψ)',1 ,0 );OOO0000O0OO000O0O =OO00000OO0O00OOOO .create_plot_frame (OO00000OO0O00OOOO .tab2D ,l ,1 ,3 );OOOOO0OO00OOO00OO ,OOOOOOO0O0O00O000 ,OO00OOOOO00O00000 ,OOO0O00OO00OO00O0 =OO00000OO0O00OOOO .create_figure (OO00OOO00OOOOO000 ,is2D =F );OOO00OO0OO00O00O0 ,O000OOO00O0O000OO ,O00OOO00O0O0OO0OO =OO00000OO0O00OOOO .create_figure (OOO0000O0OO000O0O );O000OOO0O0O0OO00O =OO00000OO0O00OOOO .create_prompt_frame_2D (OO00000OO0O00OOOO .tab2D ,OO0O000000OOO000O ,O00000O0O0OOOO0OO ,OO0O0O0O0OOOO0O0O ,O0O000O00O000O0OO ,OOOOO0OO00OOO00OO ,OOOOOOO0O0O00O000 ,OO00OOOOO00O00000 ,OOO0O00OO00OO00O0 ,OOO00OO0OO00O00O0 ,O000OOO00O0O000OO ,O00OOO00O0O0OO0OO );OO00000OO0O00OOOO .plot2D (OO00OOOOO00O00000 ,OOO0O00OO00OO00O0 ,D (OO0O000000OOO000O .get ()),D (O00000O0O0OOOO0OO .get ()),O000OOO0O0O0OO00O );OO00000OO0O00OOOO .plotICS (O00OOO00O0O0OO0OO ,D (OO0O000000OOO000O .get ()),4 ,15 ,lmax =D (O00000O0O0OOOO0OO .get ()));OO00000OO0O00OOOO .create_other_frame (OO00000OO0O00OOOO .tab2D ,lambda :OO00000OO0O00OOOO .clickReset (A8 ,OO0O000000OOO000O ,O00000O0O0OOOO0OO ,OO0O0O0O0OOOO0O0O ,O0O000O00O000O0OO ));OO0OOOOOOOOO0O0O0 ='This tab contains the 2D wave function at large distances (from 15 to 50 bohr). Check especially the symmetry of the wave function at low and high energies, and at the resonances at 1.4, 4.1 and 7.3 cm⁻¹.';OO00000OO0O00OOOO .create_info_frame (OO00000OO0O00OOOO .tab2D ,OO0OOOOOOOOO0O0O0 )#line:71
	def create_input_frame (OO0O000OOO000OOO0 ,O0000OO0000OO00OO ,isICS =F ,is2D =G ):#line:72
		O0OO000OOO0OOO0O0 =B .LabelFrame (O0000OO0000OO00OO ,text ='Inputs',padx =5 ,pady =5 );O0OO000OOO0OOO0O0 .grid (row =0 ,column =0 ,padx =10 ,pady =10 );O0OO00O0O00OO0O00 =B .Label (O0OO000OOO0OOO0O0 ,text ='Energy (cm-1)');O0OO00O0O00OO0O00 .grid (row =0 ,column =0 );OOO0OOOOOOOO0OO0O =B .Entry (O0OO000OOO0OOO0O0 ,width =10 );OOO0OOOOOOOO0OO0O .grid (row =0 ,column =1 );OOO00O00O0O00OOO0 ='Max partial L'if is2D else 'Partial L';O00O0OOO00O0000O0 =B .Label (O0OO000OOO0OOO0O0 ,text =OOO00O00O0O00OOO0 );O00O0OOO00O0000O0 .grid (row =1 ,column =0 );OOOOO000O0OO000OO =B .Entry (O0OO000OOO0OOO0O0 ,width =10 );OOOOO000O0OO000OO .grid (row =1 ,column =1 )#line:73
		if isICS :O00O0OO0OO0000OOO =B .Label (O0OO000OOO0OOO0O0 ,text ='Rmin (bohr)');O00O0OO0OO0000OOO .grid (row =2 ,column =0 );O0O0O0O000OO00O00 =B .Entry (O0OO000OOO0OOO0O0 ,width =10 );O0O0O0O000OO00O00 .grid (row =2 ,column =1 );OO0O0O000OO00OO00 =B .Label (O0OO000OOO0OOO0O0 ,text ='Rmax (bohr)');OO0O0O000OO00OO00 .grid (row =3 ,column =0 );O00OO0OO0OOOO0000 =B .Entry (O0OO000OOO0OOO0O0 ,width =10 );O00OO0OO0OOOO0000 .grid (row =3 ,column =1 );return OOO0OOOOOOOO0OO0O ,OOOOO000O0OO000OO ,O0O0O0O000OO00O00 ,O00OO0OO0OOOO0000 #line:74
		else :return OOO0OOOOOOOO0OO0O ,OOOOO000O0OO000OO #line:75
	def create_energy_scan_input_frame (OO0OO000OO00OO0OO ,O00OOO0O0O0OO0O0O ):OO0O0O0OOOOO00OO0 =B .LabelFrame (O00OOO0O0O0OO0O0O ,text ='Inputs Energy scan',padx =5 ,pady =5 );OO0O0O0OOOOO00OO0 .grid (row =0 ,column =1 ,padx =10 ,pady =10 );OO0O00OOO0O0OO0OO =B .Label (OO0O0O0OOOOO00OO0 ,text ='Min Energy (cm-1)');OO0O00OOO0O0OO0OO .grid (row =0 ,column =0 );OOOO0O0O00000OOOO =B .Entry (OO0O0O0OOOOO00OO0 ,width =10 );OOOO0O0O00000OOOO .grid (row =0 ,column =1 );OOO0OO0O00O00OO0O =B .Label (OO0O0O0OOOOO00OO0 ,text ='Max Energy (cm-1)');OOO0OO0O00O00OO0O .grid (row =1 ,column =0 );OO00O0O00OOOOO0O0 =B .Entry (OO0O0O0OOOOO00OO0 ,width =10 );OO00O0O00OOOOO0O0 .grid (row =1 ,column =1 );return OOOO0O0O00000OOOO ,OO00O0O00OOOOO0O0 #line:76
	def create_plot_frame (O00OO0OO0O000O0OO ,OOO00OO0OOOOOOOOO ,O0OO0O0OOO0000OO0 ,O0O0OOO00OOO00OOO ,O0O0OOOO0O0OOO000 ):OOOO00OO0OOO0000O =B .LabelFrame (OOO00OO0OOOOOOOOO ,text =O0OO0O0OOO0000OO0 ,padx =5 ,pady =5 );OOOO00OO0OOO0000O .grid (row =O0O0OOO00OOO00OOO ,column =O0O0OOOO0O0OOO000 ,columnspan =3 ,padx =10 ,pady =10 );return OOOO00OO0OOO0000O #line:77
	def create_figure (O00O0OO0O0000O00O ,O0O000OO0O000O00O ,is2D =G ):#line:78
		O000O0O0000OO000O =Figure (figsize =(6 ,6 *(2 /3 )),tight_layout =F )#line:79
		if is2D :OO0O0O0O00O000000 =O000O0O0000OO000O .add_subplot (121 );O0O00O0O0OO000O00 =O000O0O0000OO000O .add_subplot (122 )#line:80
		else :OO0O0O0O00O000000 =O000O0O0000OO000O .add_subplot (111 )#line:81
		O000O0O0000OO000O .patch .set_facecolor ('gainsboro');O0000O00O0O00O000 =AJ (O000O0O0000OO000O ,master =O0O000OO0O000O00O );O0000O00O0O00O000 .draw ();O0000O00O0O00O000 .get_tk_widget ().pack (side =B .TOP ,fill =B .BOTH ,expand =1 )#line:82
		if is2D :return O0000O00O0O00O000 ,O000O0O0000OO000O ,OO0O0O0O00O000000 ,O0O00O0O0OO000O00 #line:83
		else :return O0000O00O0O00O000 ,O000O0O0000OO000O ,OO0O0O0O00O000000 #line:84
	def create_info_frame (OO0OOO0000OOOO0O0 ,O0O0OO0O000O0OOO0 ,O0OOO000OOO0O000O ):OO0OO0000OOOO0O0O =B .LabelFrame (O0O0OO0O000O0OOO0 ,text ='Info',padx =5 ,pady =5 );OO0OO0000OOOO0O0O .grid (row =0 ,column =4 ,padx =10 ,pady =10 );OO00OOO0OO0OOO000 =B .Label (OO0OO0000OOOO0O0O ,text =O0OOO000OOO0O000O ,wraplength =400 ,justify =B .LEFT );OO00OOO0OO0OOO000 .pack ()#line:85
	def create_prompt_frame_ics (OO00000O000O0OO00 ,O0O0OO0O00OO0OOO0 ,OO00O0OO000OO0OOO ,OOO0OOOOO0OOO00O0 ,OO000O0OOO00OOO00 ,OO0OO0OO0OO00000O ,OO0OO0O00OOOOO00O ,OOOO00OO0O0O00000 ,O00000OO000O0OOO0 ,O0OO00OOOO0O00O00 ,OOO0000O0O0OOOOOO ,OOOO0OOOOO0OO0O00 ,OOOOOOOO000OO0OO0 ,OOO0OOOOOOO0000O0 ):O000O0O000000OO0O =OO00O0OO000OO0OOO ;O0OO000O00OO0OO0O =OOO0OOOOOOO0000O0 ;OO00O0OO0O0OOO000 =OOOO0OOOOO0OO0O00 ;OO00OO00OOOO00OOO =OOO0000O0O0OOOOOO ;O00OO00OOOOOOOO00 =O00000OO000O0OOO0 ;OO00OO000O0OOO000 =OO0OO0OO0OO00000O ;O00000O0O00000000 =OO000O0OOO00OOO00 ;O0O00O0O0OO000OOO =OOO0OOOOO0OOO00O0 ;O00O00OOOO0OO0OOO =B .LabelFrame (O0O0OO0O00OO0OOO0 ,text =y ,padx =5 ,pady =5 );O00O00OOOO0OO0OOO .grid (row =0 ,column =2 ,padx =10 ,pady =10 );O000O0000O0OO00OO =B .IntVar ();O00O0O0OO0OOOOO00 =B .Radiobutton (O00O00OOOO0OO0OOO ,text ='Wave & density',variable =O000O0000O0OO00OO ,value =1 );O00O0O0OO0OOOOO00 .grid (row =0 ,column =1 ,sticky =E );OOO000OOOOOOOO0O0 =B .Radiobutton (O00O00OOOO0OO0OOO ,text ='Wave only',variable =O000O0000O0OO00OO ,value =2 );OOO000OOOOOOOO0O0 .grid (row =1 ,column =1 ,sticky =E );OOO000OOOOOOOO0O0 .select ();O0000OOOOOOO000O0 =B .Radiobutton (O00O00OOOO0OO0OOO ,text ='Density only',variable =O000O0000O0OO00OO ,value =3 );O0000OOOOOOO000O0 .grid (row =2 ,column =1 ,sticky =E );O000OO00O0O00OO0O =B .Button (O00O00OOOO0OO0OOO ,text =z ,command =lambda :OO00000O000O0OO00 .clickPlot (O00OO00OOOOOOOO00 ,OO00OO00OOOO00OOO ,OO00O0OO0O0OOO000 ,O0OO000O00OO0OO0O ,O000O0000O0OO00OO ,D (O000O0O000000OO0O .get ()),D (O0O00O0O0OO000OOO .get ()),D (O00000O0O00000000 .get ()),D (OO00OO000O0OOO000 .get ())));O000OO00O0O00OO0O .grid (row =0 ,column =0 );OOOO0O00OO0O00000 =B .Button (O00O00OOOO0OO0OOO ,text =AD ,command =lambda :OO00000O000O0OO00 .clickAnimate (O00OO00OOOOOOOO00 ,O0OO00OOOO0O00O00 ,OO00OO00OOOO00OOO ,OO00O0OO0O0OOO000 ,O0OO000O00OO0OO0O ,O000O0000O0OO00OO ,D (O000O0O000000OO0O .get ()),D (O0O00O0O0OO000OOO .get ()),D (O00000O0O00000000 .get ()),D (OO00OO000O0OOO000 .get ())));OOOO0O00OO0O00000 .grid (row =1 ,column =0 );OO00OO00OOO0O0OO0 =B .Button (O00O00OOOO0OO0OOO ,text =A0 ,command =lambda :OO00000O000O0OO00 .clickEnergyscan (O00OO00OOOOOOOO00 ,O0OO00OOOO0O00O00 ,OO00OO00OOOO00OOO ,OO00O0OO0O0OOO000 ,OOOOOOOO000OO0OO0 ,O0OO000O00OO0OO0O ,O000O0000O0OO00OO ,D (OO0OO0O00OOOOO00O .get ()),D (OOOO00OO0O0O00000 .get ()),D (O0O00O0O0OO000OOO .get ()),D (O00000O0O00000000 .get ()),D (OO00OO000O0OOO000 .get ())));OO00OO00OOO0O0OO0 .grid (row =2 ,column =0 );return O000O0000O0OO00OO #line:86
	def create_prompt_frame_dcs (OO00000O000OOOO00 ,O00O00O0O0O0O0OOO ,O0OOO0OO000OO000O ,OO000000O0OOO000O ,O00O00O00O000O0OO ,O0OOO00O0000OO000 ,OO0OOO00O000OOO0O ,O0000O00OOO00OOOO ,OO00OO0OO0O0OO0O0 ,O00OOOO0O00O000O0 ,OO00OOOOO00OOO0OO ,O0OOO0O00O0O0OOO0 ):O00O00O00OO0000OO =O0OOO0O00O0O0OOO0 ;OO0OO000O0OOOOO0O =O00OOOO0O00O000O0 ;O0OOO0OO0OOO0O000 =OO00OO0OO0O0OO0O0 ;OO000OO00OO00O000 =OO0OOO00O000OOO0O ;O0O00OO00OO00000O =OO000000O0OOO000O ;O0O0OO00O0000000O =B .LabelFrame (O00O00O0O0O0O0OOO ,text =y ,padx =5 ,pady =5 );O0O0OO00O0000000O .grid (row =0 ,column =2 ,padx =10 ,pady =10 );O0O0O00OOOO0OOO0O =B .Button (O0O0OO00O0000000O ,text =z ,command =lambda :OO00000O000OOOO00 .clickPlotDiff (OO000OO00OO00O000 ,O0OOO0OO0OOO0O000 ,OO0OO000O0OOOOO0O ,O00O00O00OO0000OO ,D (O0OOO0OO000OO000O .get ()),D (O0O00OO00OO00000O .get ())));O0O0O00OOOO0OOO0O .grid (row =0 ,column =0 );O0OO0000O000OO00O =B .Button (O0O0OO00O0000000O ,text =A0 ,command =lambda :OO00000O000OOOO00 .clickEnergyscanDiff (OO000OO00OO00O000 ,O0000O00OOO00OOOO ,O0OOO0OO0OOO0O000 ,OO0OO000O0OOOOO0O ,OO00OOOOO00OOO0OO ,O00O00O00OO0000OO ,D (O00O00O00O000O0OO .get ()),D (O0OOO00O0000OO000 .get ()),D (O0O00OO00OO00000O .get ())));O0OO0000O000OO00O .grid (row =1 ,column =0 )#line:87
	def create_prompt_frame_2D (O0OOO0OOO00O000OO ,OO00O0000O0O000O0 ,OOO0O0OOO000OO00O ,OO00OO0OOO00OO0OO ,OO0OOO0O0O0O0OOOO ,O0OOOOOOO0O000O0O ,O00000O000O000OOO ,OO0OO0000OO0000O0 ,O0OOOO0OOO0O00000 ,OO0000000O0O0O000 ,O0OOO000O0O0OO000 ,OOOOOOO0OOOOO0O00 ,OO0000O0OO00O0000 ):O0O00OOOO000OOOO0 =OOO0O0OOO000OO00O ;OO0000OO000OO00O0 =OO0000O0OO00O0000 ;OOO0000O000O0O000 =O0OOO000O0O0OO000 ;O0O000000O0OO00O0 =OO0000000O0O0O000 ;OOO00O0O0000O0O0O =O0OOOO0OOO0O00000 ;O0000OO0OOOO0O00O =O00000O000O000OOO ;OO0OO0000000000O0 =OO00OO0OOO00OO0OO ;O0O0O0O00OO00O000 =B .LabelFrame (OO00O0000O0O000O0 ,text =y ,padx =5 ,pady =5 );O0O0O0O00OO00O000 .grid (row =0 ,column =2 ,padx =10 ,pady =10 );OOOOO00OOOOO000O0 =B .IntVar ();OOO0O0OO00000OO0O =B .Radiobutton (O0O0O0O00OO00O000 ,text ='Incoming plane wave',variable =OOOOO00OOOOO000O0 ,value =1 );OOO0O0OO00000OO0O .grid (row =0 ,column =1 ,sticky =E );OO0000OOOOO0OO0OO =B .Radiobutton (O0O0O0O00OO00O000 ,text ='Approximated plane wave',variable =OOOOO00OOOOO000O0 ,value =2 );OO0000OOOOO0OO0OO .grid (row =1 ,column =1 ,sticky =E );O0OO00O0O0OO0OO0O =B .Radiobutton (O0O0O0O00OO00O000 ,text ='Outgoing spherical wave',variable =OOOOO00OOOOO000O0 ,value =3 );O0OO00O0O0OO0OO0O .grid (row =2 ,column =1 ,sticky =E );O0OO00O0O0OO0OO0O .select ();OOO000OO0OOO00OOO =B .Radiobutton (O0O0O0O00OO00O000 ,text ='Incoming and outgoing waves',variable =OOOOO00OOOOO000O0 ,value =4 );OOO000OO0OOO00OOO .grid (row =3 ,column =1 ,sticky =E );O000OOOO000O0O000 =B .Button (O0O0O0O00OO00O000 ,text =z ,command =lambda :O0OOO0OOO00O000OO .clickPlot2D (O0000OO0OOOO0O00O ,OOO00O0O0000O0O0O ,O0O000000O0OO00O0 ,OOO0000O000O0O000 ,OO0000OO000OO00O0 ,OOOOO00OOOOO000O0 ,D (O0O00OOOO000OOOO0 .get ()),D (OO0OO0000000000O0 .get ())));O000OOOO000O0O000 .grid (row =0 ,column =0 );O0OOOO00OOOO0O000 =B .Button (O0O0O0O00OO00O000 ,text =AD ,command =lambda :O0OOO0OOO00O000OO .clickAnimate2D (O0000OO0OOOO0O00O ,OO0OO0000OO0000O0 ,OOO00O0O0000O0O0O ,O0O000000O0OO00O0 ,OOO0000O000O0O000 ,OO0000OO000OO00O0 ,OOOOO00OOOOO000O0 ,D (O0O00OOOO000OOOO0 .get ()),D (OO0OO0000000000O0 .get ())));O0OOOO00OOOO0O000 .grid (row =1 ,column =0 );O0O0O0OO00OOOOOO0 =B .Button (O0O0O0O00OO00O000 ,text =A0 ,command =lambda :O0OOO0OOO00O000OO .clickEnergyscan2D (O0000OO0OOOO0O00O ,OO0OO0000OO0000O0 ,OOO00O0O0000O0O0O ,O0O000000O0OO00O0 ,OOO0000O000O0O000 ,OOOOOOO0OOOOO0O00 ,OO0000OO000OO00O0 ,OOOOO00OOOOO000O0 ,D (OO0OOO0O0O0O0OOOO .get ()),D (O0OOOOOOO0O000O0O .get ()),D (OO0OO0000000000O0 .get ())));O0O0O0OO00OOOOOO0 .grid (row =2 ,column =0 );return OOOOO00OOOOO000O0 #line:88
	def create_other_frame (O0O0OOO0OO000O0OO ,O00OOO0OOOO00OO00 ,OOOOOOOOOOOO00000 ):O0OOOOO000OO0O0O0 =B .LabelFrame (O00OOO0OOOO00OO00 ,text ='Other',padx =5 ,pady =5 );O0OOOOO000OO0O0O0 .grid (row =0 ,column =3 ,padx =10 ,pady =10 );O0000O0OO0OOOO0O0 =B .Button (O0OOOOO000OO0O0O0 ,text ='Reset to default',command =OOOOOOOOOOOO00000 );O0000O0OO0OOOO0O0 .grid (row =0 ,column =0 );O00OOOOOO000000OO =B .Button (O0OOOOO000OO0O0O0 ,text ='Quit',command =O0O0OOO0OO000O0OO .clickQuit );O00OOOOOO000000OO .grid (row =1 ,column =0 )#line:89
	def clickReset (OOOOOO0O0OOOOO0O0 ,OOO00O00O000O0000 ,*OO00O00OO00OO0OO0 ):#line:90
		OO0OO000O000OO00O =OOO00O00O000O0000 ;OO0OO000O000OO00O =[g (O0O00O0000O0OO00O )for O0O00O0000O0OO00O in OO0OO000O000OO00O ]#line:91
		for (O0OOOOO0OO0O0O00O ,OOOO0O000OOO0OO0O )in zip (OO00O00OO00OO0OO0 ,OO0OO000O000OO00O ):O0OOOOO0OO0O0O00O .delete (0 ,B .END );O0OOOOO0OO0O0O00O .insert (0 ,OOOO0O000OOO0OO0O )#line:92
	def clickQuit (OOOO0O0OOOOO0O0O0 ):OOOO0O0OOOOO0O0O0 .quit ();OOOO0O0OOOOO0O0O0 .destroy ()#line:93
	def clickPlot (OOOOOO00O0O0000OO ,OOOO000OOOO00O000 ,O0O0000000O0O00OO ,O00OOO0OOO0O000O0 ,O0000OOOO0O0O0O00 ,O0OO0O0O00O0O0O00 ,OO0O000OOOO00000O ,O00OO0O0OOOO00OOO ,O000O00O0OOO0OO0O ,OOO0OO0000000000O ):#line:94
		O0O0000OO0OO0OOO0 =O0OO0O0O00O0O0O00 ;O0000OOOO00O0000O =O0000OOOO0O0O0O00 ;O00000OOOOO000O00 =OOO0OO0000000000O ;OO00O000O0OO0000O =O000O00O0OOO0OO0O ;O0OOOOO00OO0OOO00 =O0O0000000O0O00OO ;OOOOOO00O0O0000OO .stopAnimation ();O0OOOOO00OO0OOO00 .cla ()#line:95
		if OOOOOO00O0O0000OO .paramWarning (OO0O000OOOO00000O ,O00OO0O0OOOO00OOO ,OO00O000O0OO0000O ,O00000OOOOO000O00 ):return #line:96
		OO0O000OOOO00000O =OO0O000OOOO00000O *C ;O00OO0O0OOOO00OOO =I (O00OO0O0OOOO00OOO );OOOOOO00O0O0000OO .plotPotential (O0OOOOO00OO0OOO00 ,O00OO0O0OOOO00OOO ,OO00O000O0OO0000O ,O00000OOOOO000O00 );OOOOOO00O0O0000OO .plotE (O0OOOOO00OO0OOO00 ,OO0O000OOOO00000O ,OO00O000O0OO0000O ,O00000OOOOO000O00 );OOOOOO00O0O0000OO .plotICS_E (O0000OOOO00O0000O ,OO0O000OOOO00000O );OOOOOO00O0O0000OO .plotICS_L (O0000OOOO00O0000O ,O00OO0O0OOOO00OOO ,OO00O000O0OO0000O ,O00000OOOOO000O00 );OO00O0O0OO0O0O0OO ,OOO00O000OOO00000 =x (OO0O000OOOO00000O ,O00OO0O0OOOO00OOO ,OO00O000O0OO0000O ,O00000OOOOO000O00 )#line:97
		if O0O0000OO0OO0OOO0 .get ()in [1 ,2 ]:O0OOOOO00OO0OOO00 .plot (OO00O0O0OO0O0O0OO ,(A .real (OOO00O000OOO00000 )+OO0O000OOOO00000O )/C ,c =P ,lw =2 ,label =i );O0OOOOO00OO0OOO00 .plot (OO00O0O0OO0O0O0OO ,(A .imag (OOO00O000OOO00000 )+OO0O000OOOO00000O )/C ,c =j ,lw =2 ,label =k )#line:98
		if O0O0000OO0OO0OOO0 .get ()in [1 ,3 ]:O0OOOOO00OO0OOO00 .plot (OO00O0O0OO0O0O0OO ,1e5 *abs (OOO00O000OOO00000 )**2 /C ,c =m ,lw =2 ,label =n )#line:99
		O0OOOOO00OO0OOO00 .legend (loc =Z ,fontsize =12 );O0OOOOO00OO0OOO00 .set_xlabel (A1 );O0OOOOO00OO0OOO00 .set_ylabel (o );O0OOOOO00OO0OOO00 .set_xlim ([OO00O000O0OO0000O ,O00000OOOOO000O00 ]);O0OOOOO00OO0OOO00 .set_ylim ([-.0001 /C ,L (.0001 ,5e-05 +L (L (A .real (OOO00O000OOO00000 )),L (A .imag (OOO00O000OOO00000 )))+OO0O000OOOO00000O )/C ]);OOOO000OOOO00O000 .draw ();O00OOO0OOO0O000O0 .draw ()#line:100
	def clickAnimate (O00OOOOOO000OOO00 ,OOO00O0O00O0O0OO0 ,OO00O000000000OOO ,O0000OO0O0OO0OOOO ,O00OO0OO0O0O0000O ,O0O0OO00000OOOO0O ,OO0O00000O00OO000 ,O000O00O00OOOOOO0 ,O00O00OOOOOO00O0O ,O0OO000O0O0O00O0O ,OO00O0O00O000O0OO ):#line:101
		OOOO0OOOOO0O0OO0O =OO0O00000O00OO000 ;OO0O00O0O00OO0O00 =O0O0OO00000OOOO0O ;OO00000O0OO0000O0 =OO00O0O00O000O0OO ;O0OOO00OOOOO00OO0 =O0OO000O0O0O00O0O ;OOOO0OO0OO000O0OO =O0000OO0O0OO0OOOO ;O00OOOOOO000OOO00 .stopAnimation ();OOOO0OO0OO000O0OO .cla ()#line:102
		if O00OOOOOO000OOO00 .paramWarning (O000O00O00OOOOOO0 ,O00O00OOOOOO00O0O ,O0OOO00OOOOO00OO0 ,OO00000O0OO0000O0 ):return #line:103
		O000O00O00OOOOOO0 =O000O00O00OOOOOO0 *C ;O00O00OOOOOO00O0O =I (O00O00OOOOOO00O0O );O00OOOOOO000OOO00 .plotPotential (OOOO0OO0OO000O0OO ,O00O00OOOOOO00O0O ,O0OOO00OOOOO00OO0 ,OO00000O0OO0000O0 );O00OOOOOO000OOO00 .plotE (OOOO0OO0OO000O0OO ,O000O00O00OOOOOO0 ,O0OOO00OOOOO00OO0 ,OO00000O0OO0000O0 );O00OOOOOO000OOO00 .plotICS_E (OO0O00O0O00OO0O00 ,O000O00O00OOOOOO0 );O00OOOOOO000OOO00 .plotICS_L (OO0O00O0O00OO0O00 ,O00O00OOOOOO00O0O ,O0OOO00OOOOO00OO0 ,OO00000O0OO0000O0 );OO0O000OO0O0O0000 ,O0OOOO00O0OOOOO0O =x (O000O00O00OOOOOO0 ,O00O00OOOOOO00O0O ,O0OOO00OOOOO00OO0 ,OO00000O0OO0000O0 )#line:104
		if OOOO0OOOOO0O0OO0O .get ()in [1 ,3 ]:OOOO0OO0OO000O0OO .plot (OO0O000OO0O0O0000 ,1e5 *abs (O0OOOO00O0OOOOO0O )**2 /C ,c =m ,lw =2 ,label =n )#line:105
		if OOOO0OOOOO0O0OO0O .get ()in [1 ,2 ]:#line:106
			OO0000OO000O0O0O0 ,OOOO0000O000OOO0O =[P ,j ],[i ,k ];O0OO0OO00O00O0O00 =[]#line:107
			for OOOOO0O000000O0O0 in K (2 ):OOO0OOOOO00OOO0O0 ,=OOOO0OO0OO000O0OO .plot ([],[],lw =2 ,c =OO0000OO000O0O0O0 [OOOOO0O000000O0O0 ],label =OOOO0000O000OOO0O [OOOOO0O000000O0O0 ]);O0OO0OO00O00O0O00 .append (OOO0OOOOO00OOO0O0 )#line:108
			def O000O0OO00O0OO00O ():#line:109
				for O000OOO0OOO00OOOO in O0OO0OO00O00O0O00 :O000OOO0OOO00OOOO .set_data ([],[])#line:110
				return O0OO0OO00O00O0O00 #line:111
			def OOOOO00OOOO00OO00 (O00OO0000OOOO00O0 ):OOO000O000OOO0O0O =O0OOOO00O0OOOOO0O *A .exp (-1j *2 *A .pi *.01 *O00OO0000OOOO00O0 );O0OO0OO00O00O0O00 [0 ].set_data (OO0O000OO0O0O0000 ,(A .real (OOO000O000OOO0O0O )+O000O00O00OOOOOO0 )/C );O0OO0OO00O00O0O00 [1 ].set_data (OO0O000OO0O0O0000 ,(A .imag (OOO000O000OOO0O0O )+O000O00O00OOOOOO0 )/C );return O0OO0OO00O00O0O00 #line:112
			N [0 ]=O (OO00O000000000OOO ,OOOOO00OOOO00OO00 ,init_func =O000O0OO00O0OO00O ,frames =100 ,interval =30 ,blit =F )#line:113
		OOOO0OO0OO000O0OO .legend (loc =Z ,fontsize =12 );OOOO0OO0OO000O0OO .set_xlabel (A1 );OOOO0OO0OO000O0OO .set_ylabel (o );OOOO0OO0OO000O0OO .set_xlim ([O0OOO00OOOOO00OO0 ,OO00000O0OO0000O0 ]);OOOO0OO0OO000O0OO .set_ylim ([-.0001 /C ,L (.0001 ,5e-05 +L (L (A .real (O0OOOO00O0OOOOO0O )),L (A .imag (O0OOOO00O0OOOOO0O )))+O000O00O00OOOOOO0 )/C ]);OOO00O0O00O0O0OO0 .draw ();O00OO0OO0O0O0000O .draw ()#line:114
	def clickEnergyscan (O00O0OO0OOO00O0OO ,OO0000OOO000OO0OO ,OOO0O00OOOOO0000O ,O000O000OOO0O0OOO ,O0O00O0000O0000O0 ,OOO00OOO00O000O0O ,O0OOO0O00O000O000 ,OOO0OO0O00OOOO0OO ,O00000O000O000O00 ,O000O00000OO0OOO0 ,OOOOOOOO0000OO0OO ,OOOO0OO0O0OO000O0 ,O000OO00OO00O0OO0 ):#line:115
		O00OO000O0OOOOOOO =O0OOO0O00O000O000 ;O0O0O0OOO0O00OOOO =OOO0OO0O00OOOO0OO ;OOO000O0O0O00O0O0 =O000OO00OO00O0OO0 ;OOO0O00O000000OOO =OOOO0OO0O0OO000O0 ;O0OO0OO0OOOO00OO0 =O000O000OOO0O0OOO ;O00O0OO0OOO00O0OO .stopAnimation ();O0OO0OO0OOOO00OO0 .cla ()#line:116
		if O00O0OO0OOO00O0OO .paramScanWarning (O00000O000O000O00 ,O000O00000OO0OOO0 ,OOOOOOOO0000OO0OO ,OOO0O00O000000OOO ,OOO000O0O0O00O0O0 ):return #line:117
		OOOO00O00OO0O000O =A .linspace (O00000O000O000O00 *C ,O000O00000OO0OOO0 *C ,300 );OOOOOOOO0000OO0OO =I (OOOOOOOO0000OO0OO );O00O0OO0OOO00O0OO .plotPotential (O0OO0OO0OOOO00OO0 ,OOOOOOOO0000OO0OO ,OOO0O00O000000OOO ,OOO000O0O0O00O0O0 );O00O0OO0OOO00O0OO .plotICS_L (O00OO000O0OOOOOOO ,OOOOOOOO0000OO0OO ,OOO0O00O000000OOO ,OOO000O0O0O00O0O0 );OOOOOOOOOO000OOOO =u (OOOO00O00OO0O000O [-1 ],OOO0O00O000000OOO ,OOO000O0O0O00O0O0 );OOO0OOOO0OO0OO000 =A .zeros ([H (OOOO00O00OO0O000O ),H (OOOOOOOOOO000OOOO )],dtype =a )#line:118
		for (O00OO0O0000O00O0O ,O0O00O0O0O0OO000O )in Y (OOOO00O00OO0O000O ):O00OOOO000O000OO0 ,OOO0OOOO0OO0OO000 [O00OO0O0000O00O0O ]=x (O0O00O0O0O0OO000O ,OOOOOOOO0000OO0OO ,OOO0O00O000000OOO ,OOO000O0O0O00O0O0 ,OOOOOOOOOO000OOOO )#line:119
		if O0O0O0OOO0O00OOOO .get ()==1 :O000OOOO00000OOO0 ,OOOOO0OO0O0OO000O =[P ,j ,m ],[i ,k ,n ]#line:120
		elif O0O0O0OOO0O00OOOO .get ()==2 :O000OOOO00000OOO0 ,OOOOO0OO0O0OO000O =[P ,j ],[i ,k ]#line:121
		elif O0O0O0OOO0O00OOOO .get ()==3 :O000OOOO00000OOO0 ,OOOOO0OO0O0OO000O =[m ],[n ]#line:122
		OO0OOO0O0O0O00OO0 =[];OO0O000OOOO0O0O00 ,=O0OO0OO0OOOO00OO0 .plot ([],[],lw =1 ,c =T ,linestyle =U );OO0OOO0O0O0O00OO0 .append (OO0O000OOOO0O0O00 )#line:123
		if O0O0O0OOO0O00OOOO .get ()==1 :#line:124
			for O000OO000OOOOOO00 in K (2 ):OO0O000OOOO0O0O00 ,=O0OO0OO0OOOO00OO0 .plot ([],[],lw =2 ,c =O000OOOO00000OOO0 [O000OO000OOOOOO00 ],alpha =.4 ,label =OOOOO0OO0O0OO000O [O000OO000OOOOOO00 ]);OO0OOO0O0O0O00OO0 .append (OO0O000OOOO0O0O00 )#line:125
			OO0O000OOOO0O0O00 ,=O0OO0OO0OOOO00OO0 .plot ([],[],lw =2 ,c =O000OOOO00000OOO0 [2 ],label =OOOOO0OO0O0OO000O [2 ]);OO0OOO0O0O0O00OO0 .append (OO0O000OOOO0O0O00 )#line:126
		else :#line:127
			for O000OO000OOOOOO00 in K (H (O000OOOO00000OOO0 )):OO0O000OOOO0O0O00 ,=O0OO0OO0OOOO00OO0 .plot ([],[],lw =2 ,c =O000OOOO00000OOO0 [O000OO000OOOOOO00 ],label =OOOOO0OO0O0OO000O [O000OO000OOOOOO00 ]);OO0OOO0O0O0O00OO0 .append (OO0O000OOOO0O0O00 )#line:128
		def OO0OOOO0000OO0OOO ():#line:129
			for O0OOOO000O0O00O00 in OO0OOO0O0O0O00OO0 :O0OOOO000O0O00O00 .set_data ([],[])#line:130
			return OO0OOO0O0O0O00OO0 #line:131
		def O000OOO00OOO0O00O (OOO0OOO0O00O00OOO ):#line:132
			O00OOO0OO0OOO0000 =OOO0OOOO0OO0OO000 [OOO0OOO0O00O00OOO ];OO0OOO0O0O0O00OO0 [0 ].set_data (OOOOOOOOOO000OOOO ,[OOOO00O00OO0O000O [OOO0OOO0O00O00OOO ]/C ]*H (OOOOOOOOOO000OOOO ))#line:133
			if H (OO0OOO0O0O0O00OO0 )==2 :OO0OOO0O0O0O00OO0 [1 ].set_data (OOOOOOOOOO000OOOO ,(1e5 *A .abs (O00OOO0OO0OOO0000 )**2 +OOOO00O00OO0O000O [OOO0OOO0O00O00OOO ])/C )#line:134
			elif H (OO0OOO0O0O0O00OO0 )>=3 :OO0OOO0O0O0O00OO0 [1 ].set_data (OOOOOOOOOO000OOOO ,(A .real (O00OOO0OO0OOO0000 )+OOOO00O00OO0O000O [OOO0OOO0O00O00OOO ])/C );OO0OOO0O0O0O00OO0 [2 ].set_data (OOOOOOOOOO000OOOO ,(A .imag (O00OOO0OO0OOO0000 )+OOOO00O00OO0O000O [OOO0OOO0O00O00OOO ])/C )#line:135
			if H (OO0OOO0O0O0O00OO0 )==4 :OO0OOO0O0O0O00OO0 [3 ].set_data (OOOOOOOOOO000OOOO ,(1e5 *A .abs (O00OOO0OO0OOO0000 )**2 +OOOO00O00OO0O000O [OOO0OOO0O00O00OOO ])/C )#line:136
			return OO0OOO0O0O0O00OO0 #line:137
		O00O0OO0OOO00O0OO .plotICS_E (O00OO000O0OOOOOOO ,1e10 );OOO0O000O000O0000 ,=O00OO000O0OOOOOOO .plot ([],[],lw =1 ,c =T ,linestyle =U ,label =V )#line:138
		def OO0O00OO0O0O00OO0 ():OOO0O000O000O0000 .set_data ([],[]);return OOO0O000O000O0000 #line:139
		def O00OO00O0O0OO00OO (O00O0000000OO0O00 ):O0O0O0O00OO00OOO0 =OOOO00O00OO0O000O [O00O0000000OO0O00 ];OOO0O000O000O0000 .set_data ([O0O0O0O00OO00OOO0 /C ,O0O0O0O00OO00OOO0 /C ],[0 ,1400 ]);return OOO0O000O000O0000 #line:140
		N [0 ]=O (OOO0O00OOOOO0000O ,O000OOO00OOO0O00O ,init_func =OO0OOOO0000OO0OOO ,frames =H (OOOO00O00OO0O000O ),interval =30 ,blit =F );N [1 ]=O (OOO00OOO00O000O0O ,O00OO00O0O0OO00OO ,init_func =OO0O00OO0O0O00OO0 ,frames =H (OOOO00O00OO0O000O ),interval =30 ,blit =G );O0OO0OO0OOOO00OO0 .legend (loc =Z ,fontsize =12 );O0OO0OO0OOOO00OO0 .set_xlabel (A1 );O0OO0OO0OOOO00OO0 .set_ylabel (o );O0OO0OO0OOOO00OO0 .set_xlim ([OOO0O00O000000OOO ,OOO000O0O0O00O0O0 ]);O0OO0OO0OOOO00OO0 .set_ylim ([-.0001 /C ,L (.0001 ,5e-05 +L (L (A .real (OOO0OOOO0OO0OO000 [-1 ])),L (A .imag (OOO0OOOO0OO0OO000 [-1 ])))+O0O00O0O0O0OO000O )/C ]);OO0000OOO000OO0OO .draw ();O0O00O0000O0000O0 .draw ()#line:141
	def clickPlotDiff (OO00O000O0O0OOOO0 ,O00OO0O0O0000000O ,O0OOO0OOO0OOOO0O0 ,O0O00O000O00O0OO0 ,O00O000O000O0O0OO ,O0OOO0OOOOO00000O ,OO0OOO0O000O0O0OO ):#line:142
		O0000O00OO000O0O0 =O00O000O000O0O0OO ;OO000OOOO000OO0O0 =O0OOO0OOO0OOOO0O0 ;OO00O000O0O0OOOO0 .stopAnimation ();OO000OOOO000OO0O0 .cla ()#line:143
		if OO00O000O0O0OOOO0 .paramWarningDiff (O0OOO0OOOOO00000O ,OO0OOO0O000O0O0OO ):return #line:144
		OO00O000O0O0OOOO0 .plotDCS (OO000OOOO000OO0O0 ,O0OOO0OOOOO00000O *C ,OO0OOO0O000O0O0OO );OO00O000O0O0OOOO0 .plotICS_E (O0000O00OO000O0O0 ,O0OOO0OOOOO00000O *C );OO00O000O0O0OOOO0 .plotICS_L (O0000O00OO000O0O0 ,OO0OOO0O000O0O0OO ,4. ,15. );O00OO0O0O0000000O .draw ();O0O00O000O00O0OO0 .draw ()#line:145
	def clickEnergyscanDiff (OOOO0O0000OOOO0O0 ,OO00OO0000OO000OO ,OOO0O0O0O00O00O00 ,O0OOOOO000OOOO00O ,OO000O00O00O00OOO ,O0OOOO00OOO0O0OO0 ,OO00O0O00OO0OOO00 ,O0OOO0OOO00OOO0O0 ,O0000O0OO000OO0O0 ,O00OOO0O0000000O0 ):#line:146
		O00O0OOO000O0OOO0 =OO00O0O00OO0OOO00 ;O0O0O000OO00O0OO0 =O0OOOOO000OOOO00O ;OOOO0O0000OOOO0O0 .stopAnimation ();O0O0O000OO00O0OO0 .cla ()#line:147
		if OOOO0O0000OOOO0O0 .paramScanWarningDiff (O0OOO0OOO00OOO0O0 ,O0000O0OO000OO0O0 ,O00OOO0O0000000O0 ):return #line:148
		OO0O00O00OOOOOO0O =A .linspace (O0OOO0OOO00OOO0O0 *C ,O0000O0OO000OO0O0 *C ,300 );O00OOO0O0000000O0 =I (O00OOO0O0000000O0 );OOOO0O0000OOOO0O0 .plotICS_L (O00O0OOO000O0OOO0 ,O00OOO0O0000000O0 ,4. ,15. );O00O00O0O0OOO0O0O =A .zeros ([H (OO0O00O00OOOOOO0O ),360 ]);O0000OO0O0O0OOO00 =A .zeros ([H (OO0O00O00OOOOOO0O ),360 ])#line:149
		for (O0O0O0O0O0OO0OO00 ,O00O0O000000OOO00 )in Y (OO0O00O00OOOOOO0O ):[OO000O000OO0O0O0O ,O00OO00000O0OO000 ]=AB (O00O0O000000OOO00 ,O00OOO0O0000000O0 );O00O00O0O0OOO0O0O [O0O0O0O0O0OO0OO00 ]=OO000O000OO0O0O0O ;O0000OO0O0O0OOO00 [O0O0O0O0O0OO0OO00 ]=O00OO00000O0OO000 #line:150
		O0OOO0000OOOOO00O =[];O000O0OOOO00O00O0 ,=O0O0O000OO00O0OO0 .plot ([],[],lw =2 ,c =p ,label =A2 );O0OOO0000OOOOO00O .append (O000O0OOOO00O00O0 );O000O0OOOO00O00O0 ,=O0O0O000OO00O0OO0 .plot ([],[],lw =2 ,c =P ,label =q +g (O00OOO0O0000000O0 ));O0OOO0000OOOOO00O .append (O000O0OOOO00O00O0 )#line:151
		def O0O0000O000OOOO0O ():#line:152
			for OO0000OOO00O0OOOO in O0OOO0000OOOOO00O :OO0000OOO00O0OOOO .set_data ([],[])#line:153
			return O0OOO0000OOOOO00O #line:154
		def OO0OO0OO0O000OO00 (O000O00O0O00000O0 ):O00O0O00O0OOO0O0O =O00O00O0O0OOO0O0O [O000O00O0O00000O0 ];O00O0000OO00OOOO0 =O0000OO0O0O0OOO00 [O000O00O0O00000O0 ];OOO0O00000O0OOO00 =A .linspace (-A .pi ,A .pi ,360 );O0OOO0000OOOOO00O [0 ].set_data (OOO0O00000O0OOO00 *180 /A .pi ,O00O0O00O0OOO0O0O );O0OOO0000OOOOO00O [1 ].set_data (OOO0O00000O0OOO00 *180 /A .pi ,O00O0000OO00OOOO0 );return O0OOO0000OOOOO00O #line:155
		OOOO0O0000OOOO0O0 .plotICS_E (O00O0OOO000O0OOO0 ,1e10 );O000O00O00OO00O00 ,=O00O0OOO000O0OOO0 .plot ([],[],lw =1 ,c =T ,linestyle =U ,label =V )#line:156
		def O00OOO0OO0O0OOO0O ():O000O00O00OO00O00 .set_data ([],[]);return O000O00O00OO00O00 #line:157
		def OO00OOO0000OO0OO0 (O0000OOO0OOO000OO ):OO0OO0O000O00O0OO =OO0O00O00OOOOOO0O [O0000OOO0OOO000OO ];O000O00O00OO00O00 .set_data ([OO0OO0O000O00O0OO /C ,OO0OO0O000O00O0OO /C ],[0 ,1400 ]);return O000O00O00OO00O00 #line:158
		N [0 ]=O (OOO0O0O0O00O00O00 ,OO0OO0OO0O000OO00 ,init_func =O0O0000O000OOOO0O ,frames =H (OO0O00O00OOOOOO0O ),interval =30 ,blit =F );N [1 ]=O (O0OOOO00OOO0O0OO0 ,OO00OOO0000OO0OO0 ,init_func =O00OOO0OO0O0OOO0O ,frames =H (OO0O00O00OOOOOO0O ),interval =30 ,blit =G );O0O0O000OO00O0OO0 .legend (loc =Z ,fontsize =12 );O0O0O000OO00O0OO0 .set_xlabel (AE );O0O0O000OO00O0OO0 .set_ylabel (AF );O0O0O000OO00O0OO0 .set_xlim ([-180 ,180 ]);O0O0O000OO00O0OO0 .set_ylim ([0 ,3500 ]);OO00OO0000OO000OO .draw ();OO000O00O00O00OOO .draw ()#line:159
	def clickPlot2D (O0OO0O00OOOOO00OO ,O0O00O0000OO00O00 ,O0OO0O00OO0OO000O ,OOOO00O00OOOOOOO0 ,O0O000OOOOOO0OOOO ,OOO00O00OO0OO00O0 ,O00OO000O00OOOO00 ,OOOOOO0O0OOO000OO ,O0OO0000OO0000OOO ):#line:160
		O0O0O0O0OOOOOOO00 =OOO00O00OO0OO00O0 ;OO0O000OOOOOO0O0O =OOOO00O00OOOOOOO0 ;O00O0OO0O00OO0O0O =O0OO0O00OO0OO000O ;OO000000O0OOOOO0O =O0OO0000OO0000OOO ;O0OO0O00OOOOO00OO .stopAnimation ();O00O0OO0O00OO0O0O .cla ();OO0O000OOOOOO0O0O .cla ();O0O0O0O0OOOOOOO00 .cla ()#line:161
		if O0OO0O00OOOOO00OO .paramWarning2D (OOOOOO0O0OOO000OO ,OO000000O0OOOOO0O ):return #line:162
		OO000000O0OOOOO0O =I (OO000000O0OOOOO0O );O0OO0O00OOOOO00OO .plot2D (O00O0OO0O00OO0O0O ,OO0O000OOOOOO0O0O ,OOOOOO0O0OOO000OO ,OO000000O0OOOOO0O ,O00OO000O00OOOO00 );O0OO0O00OOOOO00OO .plotICS (O0O0O0O0OOOOOOO00 ,OOOOOO0O0OOO000OO ,4 ,15 ,h (13 ,OO000000O0OOOOO0O ));O0O00O0000OO00O00 .draw ();O0O000OOOOOO0OOOO .draw ()#line:163
	def clickAnimate2D (OO0O0OO00OO00OOOO ,OOOOOOO00OO0OO00O ,OOOOO0OO00O0OOO0O ,OO0O00OO0OOO0OO0O ,OOO0OO00O0OO0O0O0 ,O0OO0000OOO000O00 ,O00OO00OOOOO0OOOO ,OO0OO0O00000O0O0O ,O0000OOOO00000O0O ,O0O000O0OO0000O00 ):#line:164
		O00O000O000O0OO00 =O00OO00OOOOO0OOOO ;O00000O0OO0000OOO =OO0OO0O00000O0O0O ;OOOOO0O0O000O00O0 =OO0O00OO0OOO0OO0O ;OO0OO00000OOO000O =O0O000O0OO0000O00 ;O0OO00OO000OOO00O =OOO0OO00O0OO0O0O0 ;OO0O0OO00OO00OOOO .stopAnimation ();OOOOO0O0O000O00O0 .cla ();O0OO00OO000OOO00O .cla ();O00O000O000O0OO00 .cla ()#line:165
		if OO0O0OO00OO00OOOO .paramWarning2D (O0000OOOO00000O0O ,OO0OO00000OOO000O ):return #line:166
		OO0OO00000OOO000O =I (OO0OO00000OOO000O );OO0O0OO00OO00OOOO .plotICS (O00O000O000O0OO00 ,O0000OOOO00000O0O ,4 ,15 ,h (13 ,OO0OO00000OOO000O ));OO000OO00O00O0O00 ,OOO0O00O00OOOO000 ,O00O0O0O0000O0OO0 =G ,G ,G #line:167
		if O00000O0OO0000OOO .get ()==1 :OO000OO00O00O0O00 =F #line:168
		if O00000O0OO0000OOO .get ()in [2 ,4 ]:OOO0O00O00OOOO000 =F #line:169
		if O00000O0OO0000OOO .get ()in [3 ,4 ]:O00O0O0O0000O0OO0 =F #line:170
		OO000O00O0OOOO000 ,O0O0OO0O00O0OOOOO ,OO0000OO0OO00O00O =f (O0000OOOO00000O0O *C ,OO0OO00000OOO000O ,4 ,15 ,OO000OO00O00O0O00 ,OOO0O00O00OOOO000 ,O00O0O0O0000O0OO0 );O0OO0OO0O0O000OO0 =OO000O00O0OOOO000 *A .cos (O0O0OO0O00O0OOOOO );O0O0000OOO0OOOOOO =OO000O00O0OOOO000 *A .sin (O0O0OO0O00O0OOOOO );OOOOO0O0O000O00O0 .set_aspect (Q );O0OO00OO000OOO00O .set_aspect (Q );OOOOO0O0O000O00O0 .axis (R );O0OO00OO000OOO00O .axis (R );OOOOO0O0000OOO0OO =A .abs (OO0000OO0OO00O00O )**2 ;O0OOO0O000OO0OO00 =OOOOO0O0O000O00O0 .contourf (O0OO0OO0O0O000OO0 ,O0O0000OOO0OOOOOO ,OOOOO0O0000OOO0OO ,100 )#line:171
		for O00O00OO0OOOOO0OO in O0OOO0O000OO0OO00 .collections :O00O00OO0OOOOO0OO .set_edgecolor (W )#line:172
		OO0OOOOO00O00O00O =A .real (OO0000OO0OO00O00O );OO0000OOOOO00O0O0 ,O00OOOO00OOOO00OO =-A .sqrt (OOOOO0O0000OOO0OO .max ()),A .sqrt (OOOOO0O0000OOO0OO .max ())#line:173
		def O0O00OOOO000O00O0 (OO0O0000O000O0O00 ):#line:174
			O0OO00OO000OOO00O .clear ();O0OO00OO000OOO00O .set_aspect (Q );O0OO00OO000OOO00O .axis (R );OOOOO00OOOOO0O0OO =O0OO00OO000OOO00O .contourf (O0OO0OO0O0O000OO0 ,O0O0000OOO0OOOOOO ,A .real (OO0000OO0OO00O00O *A .exp (-1j *2 *A .pi *(1 /25 )*OO0O0000O000O0O00 )),100 ,vmin =OO0000OOOOO00O0O0 ,vmax =O00OOOO00OOOO00OO )#line:175
			for OO000000O00O0OOO0 in OOOOO00OOOOO0O0OO .collections :OO000000O00O0OOO0 .set_edgecolor (W )#line:176
			return OOOOO00OOOOO0O0OO .collections #line:177
		N [0 ]=O (OOOOO0OO00O0OOO0O ,O0O00OOOO000O00O0 ,frames =K (25 ),blit =G );OOOOOOO00OO0OO00O .draw ();O0OO0000OOO000O00 .draw ()#line:178
	def clickEnergyscan2D (O00O0OO00OO0O000O ,OOO0O0OO0O00O0OO0 ,OOO0OOO0O0O0O00OO ,OOOO0O000000OOO00 ,O0O0O00O00O00O0O0 ,OO0O00O0OO0OO0OO0 ,OO00O0O0OOOOO0OOO ,OOOO0000O0O0OO0OO ,OO0O0OO00O0OOOOOO ,OOOO0OO0OOOOOOOOO ,O0OO000O000000O00 ,O00O0OOOO0O0OOOOO ):#line:179
		OOO0O00O000OOO0O0 =OOOO0OO0OOOOOOOOO ;O000OOOO00O000OOO =OO0O0OO00O0OOOOOO ;OOO0OO0OOOOOOO00O =OOOO0000O0O0OO0OO ;OO00O00OOOOO000O0 =O0O0O00O00O00O0O0 ;OO0OO0O0O0O0000O0 =OOOO0O000000OOO00 ;OOO000OO0OOO000O0 =O00O0OOOO0O0OOOOO ;O00O0OO00OO0O000O .stopAnimation ();OO0OO0O0O0O0000O0 .cla ();OO00O00OOOOO000O0 .cla ();OOO0OO0OOOOOOO00O .cla ()#line:180
		if O00O0OO00OO0O000O .paramScanWarning2D (OOO0O00O000OOO0O0 ,O0OO000O000000O00 ,OOO000OO0OOO000O0 ):return #line:181
		O0O0000OOO0O0OOOO =A .logspace (A .log10 (OOO0O00O000OOO0O0 *C ),A .log10 (O0OO000O000000O00 *C ),50 );OOO000OO0OOO000O0 =I (OOO000OO0OOO000O0 );O00O0OO00OO0O000O .plotICS (OOO0OO0OOOOOOO00O ,OOO0O00O000OOO0O0 ,4 ,15 ,h (13 ,OOO000OO0OOO000O0 ));O00OO0OO000O0OO0O ,OO0OO0OO000OO0000 ,O00O0O00OO0O0O000 =G ,G ,G #line:182
		if O000OOOO00O000OOO .get ()==1 :O00OO0OO000O0OO0O =F #line:183
		if O000OOOO00O000OOO .get ()in [2 ,4 ]:OO0OO0OO000OO0000 =F #line:184
		if O000OOOO00O000OOO .get ()in [3 ,4 ]:O00O0O00OO0O0O000 =F #line:185
		OOOO0O00OOOO000OO ,OOOO0O00000O000OO ,O00OO0000OOOO0OOO =f (O0O0000OOO0O0OOOO [0 ],OOO000OO0OOO000O0 ,4 ,15 ,O00OO0OO000O0OO0O ,OO0OO0OO000OO0000 ,O00O0O00OO0O0O000 );OOOOOOOOOOOOOOO00 =OOOO0O00OOOO000OO *A .cos (OOOO0O00000O000OO );OOO0O000O00O0O000 =OOOO0O00OOOO000OO *A .sin (OOOO0O00000O000OO );O0O0OO0OOO0OOO0O0 =[O00OO0000OOOO0OOO ]#line:186
		for OO00OOOO0O00O000O in O0O0000OOO0O0OOOO [1 :]:O000O00O00O00000O ,O000O00O00O00000O ,O00OO0000OOOO0OOO =f (OO00OOOO0O00O000O ,OOO000OO0OOO000O0 ,4 ,15 ,O00OO0OO000O0OO0O ,OO0OO0OO000OO0000 ,O00O0O00OO0O0O000 );O0O0OO0OOO0OOO0O0 .append (O00OO0000OOOO0OOO )#line:187
		def OO0OO0O00O00OO0O0 (OO0000O0OO0O0000O ):#line:188
			OO0OO0O0O0O0000O0 .clear ();OO00O00OOOOO000O0 .clear ();OO0OO0O0O0O0000O0 .set_aspect (Q );OO00O00OOOOO000O0 .set_aspect (Q );OO0OO0O0O0O0000O0 .axis (R );OO00O00OOOOO000O0 .axis (R );O0O0000O0OO00OOOO =A .abs (O0O0OO0OOO0OOO0O0 [OO0000O0OO0O0000O ])**2 ;OO0OO0OOOOOOOOOOO =OO0OO0O0O0O0000O0 .contourf (OOOOOOOOOOOOOOO00 ,OOO0O000O00O0O000 ,O0O0000O0OO00OOOO ,100 )#line:189
			for O0O00O0OOOO0O00OO in OO0OO0OOOOOOOOOOO .collections :O0O00O0OOOO0O00OO .set_edgecolor (W )#line:190
			O0O000OOO00OOO0OO =A .real (O0O0OO0OOO0OOO0O0 [OO0000O0OO0O0000O ]);O00OOO0000000OOOO ,O0OOOO00O00OO0OOO =-A .sqrt (O0O0000O0OO00OOOO .max ()),A .sqrt (O0O0000O0OO00OOOO .max ());OO0O00OOOO0OO0OOO =OO00O00OOOOO000O0 .contourf (OOOOOOOOOOOOOOO00 ,OOO0O000O00O0O000 ,O0O000OOO00OOO0OO ,100 ,vmin =O00OOO0000000OOOO ,vmax =O0OOOO00O00OO0OOO )#line:191
			for O0O00O0OOOO0O00OO in OO0O00OOOO0OO0OOO .collections :O0O00O0OOOO0O00OO .set_edgecolor (W )#line:192
			return OO0O00OOOO0OO0OOO .collections #line:193
		def O0O000000O0OO0OO0 (OOO00000OO00O0OO0 ):O00O0OO00OO0O000O .plotICS_E (OOO0OO0OOOOOOO00O ,O0O0000OOO0O0OOOO [OOO00000OO00O0OO0 ])#line:194
		N [0 ]=O (OOO0OOO0O0O0O00OO ,OO0OO0O00O00OO0O0 ,frames =K (H (O0O0000OOO0O0OOOO )),blit =G );N [1 ]=O (OO00O0O0OOOOO0OOO ,O0O000000O0OO0OO0 ,frames =K (H (O0O0000OOO0O0OOOO )),blit =G );OOO0O0OO0O00O0OO0 .draw ();OO0O00O0OO0OO0OO0 .draw ()#line:195
	def stopAnimation (OO00O0OO0O00O0O00 ):#line:196
		for O0OOOOOOOO0O00OOO in N :#line:197
			if O0OOOOOOOO0O00OOO !=0 :O0OOOOOOOO0O00OOO .event_source .stop ()#line:198
	def plotPotential (O0O0O0OO0O0O00O00 ,O0000OO0OOOOO0O00 ,OOOOO000O0OOOOO0O ,O00OOOO0O0000O0OO ,O0OOO0OOO0O0OO00O ):OO0OOO0O0O0O0000O =A .linspace (O00OOOO0O0000O0OO ,O0OOO0OOO0O0OO00O ,1000 );O0O00OO00O000O00O =AP (OO0OOO0O0O0O0000O ,OOOOO000O0OOOOO0O );O0000OO0OOOOO0O00 .plot (OO0OOO0O0O0O0000O ,O0O00OO00O000O00O /C ,c =p ,lw =2 ,label ='$V$')#line:199
	def plotE (OOOO0O0000000O000 ,O00OO0OOO0O00OO00 ,OOOOO0O000OOOOO0O ,OOOO00O00000O0O0O ,O0O00OOO0000O000O ):O00OO0OOO0O00OO00 .plot ([OOOO00O00000O0O0O ,O0O00OOO0000O000O ],[OOOOO0O000OOOOO0O /C ,OOOOO0O000OOOOO0O /C ],linestyle =U ,c =T ,lw =1 ,label =V )#line:200
	def plotICS (OO0OOO00O000OO000 ,OOOOO00OOO0O000O0 ,OOOO0O00O00O0O0OO ,OOO0O0O00O0000O00 ,OOOOO0O0O0O00OO00 ,lmax =r ):O000O000O0O000O0O =OOOO0O00O00O0O0OO ;OOOO0O0O00O0OO0OO =OOOOO00OOO0O000O0 ;OOO0OO000OO0OO0O0 ,O0O0O00OO0OOOO000 =AA (OOO0O0O00O0000O00 ,OOOOO0O0O0O00OO00 ,0 ,lmax );OOOO0O0O00O0OO0OO .plot (OOO0OO000OO0OO0O0 /C ,O0O0O00OO0OOOO000 ,c =p ,lw =2 ,label =A2 );OOOO0O0O00O0OO0OO .plot ([O000O000O0O000O0O ,O000O000O0O000O0O ],[0 ,1400 ],linestyle =U ,c =T ,lw =1 ,label =V );OOOO0O0O00O0OO0OO .set_xlabel (o );OOOO0O0O00O0OO0OO .set_ylabel ('ICS $\\sigma_\\mathrm{tot}$ (bohr$^2$)');OOOO0O0O00O0OO0OO .legend (loc =AG ,fontsize =12 );OOOO0O0O00O0OO0OO .set_xlim ([.01 ,10 ]);OOOO0O0O00O0OO0OO .set_ylim ([0 ,1400 ]);OOOO0O0O00O0OO0OO .set_xscale ('log')#line:201
	def plotICS_E (OO00OOOO0O0O0O00O ,OOO00OOOO0O0OO0O0 ,O0O0O00O0O0O0O0OO ):#line:202
		O0OOOO00O000OO0O0 =OOO00OOOO0O0OO0O0 #line:203
		for (OOO000OO0000O000O ,O0O0000O0O0OO0OO0 )in Y (O0OOOO00O000OO0O0 .lines ):#line:204
			if O0O0000O0O0OO0OO0 .get_label ()==V :O0OOOO00O000OO0O0 .lines .pop (OOO000OO0000O000O );break #line:205
		if .01 <O0O0O00O0O0O0O0OO /C <1e1 :O0OOOO00O000OO0O0 .plot ([O0O0O00O0O0O0O0OO /C ,O0O0O00O0O0O0O0OO /C ],[0 ,1400 ],linestyle =U ,c =T ,lw =1 ,label =V )#line:206
	def plotICS_L (OO0OO0OOO0OO0OOO0 ,O0OOO00O00OOO0O00 ,O0OO0OOO000000O00 ,O0O0O0000O00O0OO0 ,OOOO0O0O00000OO00 ):#line:207
		OO0OOO0OOO0O0OO00 =O0OOO00O00OOO0O00 #line:208
		for (OOO0OO00000000OOO ,O00O0000O0OOO0OO0 )in Y (OO0OOO0OOO0O0OO00 .lines ):#line:209
			if q in O00O0000O0OOO0OO0 .get_label ():OO0OOO0OOO0O0OO00 .lines .pop (OOO0OO00000000OOO );break #line:210
		OO000000OOO0OO000 ,O00O00O0OO0O00OO0 =AA (O0O0O0000O00O0OO0 ,OOOO0O0O00000OO00 ,O0OO0OOO000000O00 ,O0OO0OOO000000O00 );OO0OOO0OOO0O0OO00 .plot (OO000000OOO0OO000 /C ,O00O00O0OO0O00OO0 ,c =P ,lw =2 ,label =q +g (I (O0OO0OOO000000O00 )));OO0OOO0OOO0O0OO00 .legend (loc =AG ,fontsize =12 )#line:211
	def plotDCS (OOO000O00O0000OO0 ,OO000O00OO0O00000 ,O0O0OO0000OO000OO ,O0O0000000OOO0OO0 ):OO0OOOO0OO0OOOOO0 =O0O0000000OOO0OO0 ;OO00O00O0OOO0OOO0 =OO000O00OO0O00000 ;O000O0OO0O0OOO0O0 ,OOOOOOOOO0000O000 =AB (O0O0OO0000OO000OO ,OO0OOOO0OO0OOOOO0 );OOOO0O00O0O000OO0 =A .linspace (-A .pi ,A .pi ,360 );OO00O00O0OOO0OOO0 .plot (OOOO0O00O0O000OO0 *180 /A .pi ,O000O0OO0O0OOO0O0 ,c =p ,lw =2 ,label =A2 );OO00O00O0OOO0OOO0 .plot (OOOO0O00O0O000OO0 *180 /A .pi ,OOOOOOOOO0000O000 ,c =P ,lw =2 ,label =q +g (I (OO0OOOO0OO0OOOOO0 )));OO00O00O0OOO0OOO0 .set_xlabel (AE );OO00O00O0OOO0OOO0 .set_ylabel (AF );OO00O00O0OOO0OOO0 .legend (loc =Z ,fontsize =12 );OO00O00O0OOO0OOO0 .set_xlim ([-180 ,180 ]);OO00O00O0OOO0OOO0 .set_ylim ([0 ,3500 ])#line:212
	def plot2D (OO0OO00O00OO0O0O0 ,O000OOOOO0000OOOO ,OOO0000O000OOOOOO ,O00000OO0O0O0O00O ,O00O00OOO0OOOOOOO ,OO0OO000OO000000O ):#line:213
		O00000O0OO0O0000O =OO0OO000OO000000O ;OOOO000OO0O0O0OO0 =OOO0000O000OOOOOO ;O00OOO0O0OOO0OOOO =O000OOOOO0000OOOO ;O000O0O0O0OO0O0O0 ,O000O000O0O0O0O00 ,OOOO0O0OOO0OO00OO =G ,G ,G #line:214
		if O00000O0OO0O0000O .get ()==1 :O000O0O0O0OO0O0O0 =F #line:215
		if O00000O0OO0O0000O .get ()in [2 ,4 ]:O000O000O0O0O0O00 =F #line:216
		if O00000O0OO0O0000O .get ()in [3 ,4 ]:OOOO0O0OOO0OO00OO =F #line:217
		OO0OO0O000OOO0OO0 ,O0OOOOO00OO0O0OO0 ,OO000O0OO00O0000O =f (O00000OO0O0O0O00O *C ,O00O00OOO0OOOOOOO ,4 ,15 ,O000O0O0O0OO0O0O0 ,O000O000O0O0O0O00 ,OOOO0O0OOO0OO00OO );O000OOOO0OO00O0OO =OO0OO0O000OOO0OO0 *A .cos (O0OOOOO00OO0O0OO0 );OOO0O0O0OO00O000O =OO0OO0O000OOO0OO0 *A .sin (O0OOOOO00OO0O0OO0 );O00OOO0O0OOO0OOOO .set_aspect (Q );OOOO000OO0O0O0OO0 .set_aspect (Q );O00OOO0O0OOO0OOOO .axis (R );OOOO000OO0O0O0OO0 .axis (R );O0000OOOO0OOOOO00 =A .abs (OO000O0OO00O0000O )**2 ;O00O00O0O000O0O00 =O00OOO0O0OOO0OOOO .contourf (O000OOOO0OO00O0OO ,OOO0O0O0OO00O000O ,O0000OOOO0OOOOO00 ,100 )#line:218
		for OOOO0OO00000OO00O in O00O00O0O000O0O00 .collections :OOOO0OO00000OO00O .set_edgecolor (W )#line:219
		O00O0000O0OOO000O =A .real (OO000O0OO00O0000O );OO0OOOO0000000OOO ,OO0OOO0O0O0OOOOOO =-A .sqrt (O0000OOOO0OOOOO00 .max ()),A .sqrt (O0000OOOO0OOOOO00 .max ());O0O0000OO00O00OO0 =OOOO000OO0O0O0OO0 .contourf (O000OOOO0OO00O0OO ,OOO0O0O0OO00O000O ,O00O0000O0OOO000O ,100 ,vmin =OO0OOOO0000000OOO ,vmax =OO0OOO0O0O0OOOOOO )#line:220
		for OOOO0OO00000OO00O in O0O0000OO00O00OO0 .collections :OOOO0OO00000OO00O .set_edgecolor (W )#line:221
	def paramWarning (O0OO0OOO0O0OOOOOO ,OO00OO000O0O0000O ,OOOO0000O0OOO0O00 ,OO0000O00000OO000 ,O000OO00OO0O00000 ):#line:222
		if OO00OO000O0O0000O <=0 or OOOO0000O0OOO0O00 <0 or OO0000O00000OO000 <=0 or O000OO00OO0O00000 <=0 :B .messagebox .showwarning (J ,'Energy, partial L, Rmin and Rmax must be (strictly) positive');return F #line:223
		elif O000OO00OO0O00000 <=OO0000O00000OO000 :B .messagebox .showwarning (J ,AH );return F #line:224
		elif S (OOOO0000O0OOO0O00 )!=OOOO0000O0OOO0O00 :B .messagebox .showwarning (J ,s );return F #line:225
		else :return G #line:226
	def paramScanWarning (O0000OOOO0000O0O0 ,O0O00OO0OOO00000O ,OOOOO0OO00OOOOO0O ,O0OOOOOOO0O00OO0O ,O0O00O0OO000OO00O ,O0000OO000O0O00OO ):#line:227
		if O0O00OO0OOO00000O <=0 or OOOOO0OO00OOOOO0O <=0 or O0OOOOOOO0O00OO0O <0 or O0O00O0OO000OO00O <=0 or O0000OO000O0O00OO <=0 :B .messagebox .showwarning (J ,'Min Energy, Max Energy, partial L, Rmin and Rmax must be (strictly) positive');return F #line:228
		elif OOOOO0OO00OOOOO0O <=O0O00OO0OOO00000O :B .messagebox .showwarning (J ,A3 )#line:229
		elif O0000OO000O0O00OO <=O0O00O0OO000OO00O :B .messagebox .showwarning (J ,AH );return F #line:230
		elif S (O0OOOOOOO0O00OO0O )!=O0OOOOOOO0O00OO0O :B .messagebox .showwarning (J ,s );return F #line:231
		else :return G #line:232
	def paramWarningDiff (O0OO00OO00OOOOO0O ,O00O0O00O00OOOOOO ,O00O0O00O00OOOO00 ):#line:233
		if O00O0O00O00OOOOOO <=0 or O00O0O00O00OOOO00 <0 :B .messagebox .showwarning (J ,'Energy and partial L must be (strictly) positive');return F #line:234
		elif S (O00O0O00O00OOOO00 )!=O00O0O00O00OOOO00 :B .messagebox .showwarning (J ,s );return F #line:235
		else :return G #line:236
	def paramScanWarningDiff (OOO000O0OO0OOOOOO ,OOO0OOOO000O0O00O ,OO00OOO0O0OO0000O ,OO00OO0000O0O0OO0 ):#line:237
		if OOO0OOOO000O0O00O <=0 or OO00OOO0O0OO0000O <=0 or OO00OO0000O0O0OO0 <0 :B .messagebox .showwarning (J ,'Min Energy, Max Energy and partial L must be (strictly) positive');return F #line:238
		elif OO00OOO0O0OO0000O <=OOO0OOOO000O0O00O :B .messagebox .showwarning (J ,A3 )#line:239
		elif S (OO00OO0000O0O0OO0 )!=OO00OO0000O0O0OO0 :B .messagebox .showwarning (J ,s );return F #line:240
		else :return G #line:241
	def paramWarning2D (O0O0O000O0OO000O0 ,OO0O000OO0OOO000O ,O0OO0OO000000O000 ):#line:242
		O0O0OOO000O0OOOOO =O0OO0OO000000O000 #line:243
		if OO0O000OO0OOO000O <=0 or O0O0OOO000O0OOOOO <0 :B .messagebox .showwarning (J ,'Energy and Max partial L must be (strictly) positive');return F #line:244
		elif S (O0O0OOO000O0OOOOO )!=O0O0OOO000O0OOOOO :B .messagebox .showwarning (J ,AI );return F #line:245
		else :return G #line:246
	def paramScanWarning2D (OO0000O00OOOO0OOO ,OO0OO0000O0OO0O0O ,O0000O0OO0O000O0O ,O0OO0OO00OO0O0OO0 ):#line:247
		OOOOOOO0O0O00OOOO =O0OO0OO00OO0O0OO0 #line:248
		if OO0OO0000O0OO0O0O <=0 or O0000O0OO0O000O0O <=0 or OOOOOOO0O0O00OOOO <0 :B .messagebox .showwarning (J ,'Min Energy, Max Energy and Max partial L must be (strictly) positive');return F #line:249
		elif O0000O0OO0O000O0O <=OO0OO0000O0OO0O0O :B .messagebox .showwarning (J ,A3 )#line:250
		elif S (OOOOOOO0O0O00OOOO )!=OOOOOOO0O0O00OOOO :B .messagebox .showwarning (J ,AI );return F #line:251
		else :return G #line:252
def A9 (O0OO0OOO0O000OOOO ):return X *(1 -A .exp (-AN *(O0OO0OOO0O000OOOO -AM )))**2 -X #line:253
def AP (OOOO00OO0OO0OO00O ,OOO0O0O0O00O0O0OO ):return A9 (OOOO00OO0OO0OO00O )+OOO0O0O0O00O0O0OO *(OOO0O0O0O00O0O0OO +1 )/(2 *M *OOOO00OO0OO0OO00O **2 )#line:254
def u (OO0OO0OO000O0OOOO ,OOO00O0O0O0OOOO0O ,O0OOO0OOOO00000OO ):OOO000OOOOO0000O0 =2 *A .pi /A .sqrt (2 *M *(OO0OO0OO000O0OOOO +X ));O0OO0O0OOOOO0O000 =OOO000OOOOO0000O0 /20 ;return A .linspace (OOO00O0O0O0OOOO0O ,O0OOO0OOOO00000OO ,I (A .floor ((O0OOO0OOOO00000OO -OOO00O0O0O0OOOO0O )/O0OO0O0OOOOO0O000 )+1 ))#line:255
def AQ ():O0O0000O00OO0OO00 =A .arange (15 ,50 ,2 );O0OO0OO00O0OOO0O0 =A .linspace (-A .pi ,A .pi ,100 );O0OO0OO0O00OO0O0O ,OO00OOO0O0O00O000 =A .meshgrid (O0O0000O00OO0OO00 ,O0OO0OO00O0OOO0O0 );return [O0OO0OO0O00OO0O0O ,OO00OOO0O0O00O000 ]#line:256
def d (OOO0OO0OO0O0OO00O ,O00OOO00OO00O0O00 ,OOO0O0O00O0OOOOO0 ):#line:257
	O0000000O0O0O00O0 =OOO0OO0OO0O0OO00O ;O000OOOOOOO00O00O =H (O0000000O0O0O00O0 );O00OOOO0OOOO0OO00 =O0000000O0O0O00O0 [1 ]-O0000000O0O0O00O0 [0 ];O0OOO000OOOOOOO00 =A .empty (O000OOOOOOO00O00O -1 ,dtype =a );O0OOO000OOOOOOO00 [0 ]=0 #line:258
	for OO00O0OO0000OO0OO in K (2 ,O000OOOOOOO00O00O ):O0O0OOOOOO0O0O0OO =OOO0O0O00O0OOOOO0 *(OOO0O0O00O0OOOOO0 +1 )/O0000000O0O0O00O0 [OO00O0OO0000OO0OO -2 ]**2 +2 *M *(A9 (O0000000O0O0O00O0 [OO00O0OO0000OO0OO -2 ])-O00OOO00OO00O0O00 );O0OOO000OOOOOOO00 [OO00O0OO0000OO0OO -1 ]=1 /(O00OOOO0OOOO0OO00 **2 *O0O0OOOOOO0O0O0OO +2 -O0OOO000OOOOOOO00 [OO00O0OO0000OO0OO -2 ])#line:259
	return O0OOO000OOOOOOO00 #line:260
def v (O0OO00OOO000OO000 ,O000OOO000OOO0O00 ):return t (O0OO00OOO000OO000 ,O000OOO000OOO0O00 )+1j *A4 (O0OO00OOO000OO000 ,O000OOO000OOO0O00 )#line:261
def w (O00O000OO0OO00000 ,O0O00OO0OO000O0O0 ):return t (O00O000OO0OO00000 ,O0O00OO0OO000O0O0 )-1j *A4 (O00O000OO0OO00000 ,O0O00OO0OO000O0O0 )#line:262
def e (O0OOO00OOOO0OO000 ,OOO0OO0OO000O00O0 ,OO0OOO0000O0O00OO ,OOOO000000O000O0O ):OO00O00OO00OO0000 =OO0OOO0000O0O00OO *O0OOO00OOOO0OO000 [-1 ];OOO000OO000OO0OOO =OO0OOO0000O0O00OO *O0OOO00OOOO0OO000 [-2 ];return (OOO000OO000OO0OOO *w (OOOO000000O000O0O ,OOO000OO000OO0OOO )-OO00O00OO00OO0000 *OOO0OO0OO000O00O0 *w (OOOO000000O000O0O ,OO00O00OO00OO0000 ))/(OO00O00OO00OO0000 *OOO0OO0OO000O00O0 *v (OOOO000000O000O0O ,OO00O00OO00OO0000 )-OOO000OO000OO0OOO *v (OOOO000000O000O0O ,OOO000OO000OO0OOO ))#line:263
def AR (O00000OOOOO00O0O0 ,OO0OO00000O000O00 ,OO0O00O00O0O000O0 ,OOO0O0OO00OO0O00O ,OOO00O00OOO0O0000 ):#line:264
	O00O0000000OOO0O0 =H (O00000OOOOO00O0O0 );OOO0O0O0OO0O0OOO0 =OOO0O0OO00OO0O00O *O00000OOOOO00O0O0 [-1 ];OO0O000O0OOOO00O0 =A .empty (O00O0000000OOO0O0 ,dtype =a );OO0O000O0OOOO00O0 [O00O0000000OOO0O0 -1 ]=-2 *1j *OOO0O0O0OO0O0OOO0 *(w (OOO00O00OOO0O0000 ,OOO0O0O0OO0O0OOO0 )+v (OOO00O00OOO0O0000 ,OOO0O0O0OO0O0OOO0 )*OO0O00O00O0O000O0 )#line:265
	for O000000OO0OO0O0OO in reversed (K (1 ,O00O0000000OOO0O0 )):OO0O000O0OOOO00O0 [O000000OO0OO0O0OO -1 ]=OO0OO00000O000O00 [O000000OO0OO0O0OO -1 ]*OO0O000O0OOOO00O0 [O000000OO0OO0O0OO ]#line:266
	OO0O000O0OOOO00O0 =OO0O000O0OOOO00O0 *2.5e-05 /A .abs (A .max (OO0O000O0OOOO00O0 )-A .min (OO0O000O0OOOO00O0 ));return OO0O000O0OOOO00O0 #line:267
def x (O00OO00O0000O000O ,OOO0OOOOO0OOO0000 ,O00O00O00O00OO0OO ,OO000OOO0O0O000OO ,grid =r ):#line:268
	O0OO0O0OO00OOOO00 =grid #line:269
	if O0OO0O0OO00OOOO00 is r :O0OO0O0OO00OOOO00 =u (O00OO00O0000O000O ,O00O00O00O00OO0OO ,OO000OOO0O0O000OO )#line:270
	OO00OO00000O000O0 =d (O0OO0O0OO00OOOO00 ,O00OO00O0000O000O ,OOO0OOOOO0OOO0000 );O000000O00O00OO0O =A .sqrt (2 *M *O00OO00O0000O000O );O000O0O0OO0OO0000 =e (O0OO0O0OO00OOOO00 ,OO00OO00000O000O0 [-1 ],O000000O00O00OO0O ,OOO0OOOOO0OOO0000 );O0OO00O00O00O0OO0 =AR (O0OO0O0OO00OOOO00 ,OO00OO00000O000O0 ,O000O0O0OO0OO0000 ,O000000O00O00OO0O ,OOO0OOOOO0OOO0000 );return [O0OO0O0OO00OOOO00 ,O0OO00O00O00O0OO0 ]#line:271
def f (OO0000OOOOO0O0OOO ,OOO000OO000O000O0 ,O000OO00O0000OO00 ,O0OO0OO0O00O00000 ,incomingPW =G ,incomingPWapprox =F ,outgoing =F ):#line:272
	O00O00OO00OOO000O =OOO000OO000O000O0 ;O0OO00O0000000O00 ,O0O00OO0OO00000OO =AQ ();O000OOOO0OO00OOO0 =u (OO0000OOOOO0O0OOO ,O000OO00O0000OO00 ,O0OO0OO0O00O00000 );OO0O00OOOOO000000 =0 ;O00O00OO00OOO000O =I (O00O00OO00OOO000O );O0000OOO00OOO0000 =[]#line:273
	for O0000000O00O00000 in K (OO0O00OOOOO000000 ,O00O00OO00OOO000O +1 ):O0OOOO00O00OOO0O0 =d (O000OOOO0OO00OOO0 ,OO0000OOOOO0O0OOO ,O0000000O00O00000 );OO00O0O0O0OOO0OO0 =A .sqrt (2 *M *OO0000OOOOO0O0OOO );O0OO0O0OO0000O0OO =e (O000OOOO0OO00OOO0 ,O0OOOO00O00OOO0O0 [-1 ],OO00O0O0O0OOO0OO0 ,O0000000O00O00000 );O0OOOO00000OOOOO0 =1 -O0OO0O0OO0000O0OO ;O0000OOO00OOO0000 .append (O0OOOO00000OOOOO0 )#line:274
	if incomingPW :OO00O0OOO0OO00OO0 =A .exp (1j *OO00O0O0O0OOO0OO0 *O0OO00O0000000O00 *A .cos (O0O00OO0OO00000OO ))#line:275
	else :OO00O0OOO0OO00OO0 =A .zeros_like (O0OO00O0000000O00 ,dtype =complex )#line:276
	if incomingPWapprox :#line:277
		for O0000000O00O00000 in K (O00O00OO00OOO000O ):OO00O0OOO0OO00OO0 +=1j **O0000000O00O00000 *(2 *O0000000O00O00000 +1 )*t (O0000000O00O00000 ,OO00O0O0O0OOO0OO0 *O0OO00O0000000O00 )*c (O0000000O00O00000 ,A .cos (O0O00OO0OO00000OO ))#line:278
	if outgoing :#line:279
		for O0000000O00O00000 in K (O00O00OO00OOO000O ):OO00O0OOO0OO00OO0 +=1j **(O0000000O00O00000 +1 )/(2 *OO00O0O0O0OOO0OO0 )*(2 *O0000000O00O00000 +1 )*A .exp (1j *(OO00O0O0O0OOO0OO0 *O0OO00O0000000O00 -O0000000O00O00000 *A .pi /2 ))/O0OO00O0000000O00 *O0000OOO00OOO0000 [O0000000O00O00000 ]*c (O0000000O00O00000 ,A .cos (O0O00OO0OO00000OO ))#line:280
	return [O0OO00O0000000O00 ,O0O00OO0OO00000OO ,OO00O0OOO0OO00OO0 ]#line:281
def AA (OOO0O0O0OO0OOO000 ,O0000000O0O0O0O0O ,O0O0OO00OO0O000O0 ,OO00O0O0OOO000O00 ):#line:282
	OOO00OO0OO0O00OO0 =O0O0OO00OO0O000O0 ;OOO000O000OO0OO00 =OO00O0O0OOO000O00 ;O0O0OOO00O0OO00OO =O0000000O0O0O0O0O ;O0O0OOO00O0OO00OO =h (15 ,O0O0OOO00O0OO00OO );O00OOOOOO00000000 =.01 *C ;O0OO0OOOOO000000O =1e1 *C ;OO0O0O0OO000OO0OO =300 ;OOOOOOO00OO000O0O =A .logspace (A .log10 (O00OOOOOO00000000 ),A .log10 (O0OO0OOOOO000000O ),OO0O0O0OO000OO0OO );OOOO00O00OOOO00OO =2 *A .pi /A .sqrt (2 *M *(O0OO0OOOOO000000O +X ));OO00O00O00O00OOO0 =OOOO00O00OOOO00OO /20 ;O000OO0O00O0O0OO0 =A .linspace (OOO0O0O0OO0OOO000 ,O0O0OOO00O0OO00OO ,I (A .floor ((O0O0OOO00O0OO00OO -OOO0O0O0OO0OOO000 )/OO00O00O00O00OOO0 )+1 ));OOO00OO0OO0O00OO0 =I (OOO00OO0OO0O00OO0 )#line:283
	if OOO000O000OO0OO00 is r :OOO000O000OO0OO00 =I (A .ceil (A .sqrt (2 *M *O0OO0OOOOO000000O )*O0O0OOO00O0OO00OO ))#line:284
	else :OOO000O000OO0OO00 =I (OOO000O000OO0OO00 )#line:285
	O0OOO0OOOOO00O0O0 =[]#line:286
	for (OO00OO0O0O0O00O0O ,OOO00O00O0O00O00O )in Y (OOOOOOO00OO000O0O ):#line:287
		O000OO00O000O0O0O =A .sqrt (2 *M *OOO00O00O0O00O00O );OO00OO0OOOO0OOOO0 =0 #line:288
		for O0O0OO00OO000000O in K (OOO00OO0OO0O00OO0 ,OOO000O000OO0OO00 +1 ):OOOOO0OOO0O000OOO =d (O000OO0O00O0O0OO0 ,OOO00O00O0O00O00O ,O0O0OO00OO000000O );O000OO00OOO0OO0OO =e (O000OO0O00O0O0OO0 ,OOOOO0OOO0O000OOO [-1 ],O000OO00O000O0O0O ,O0O0OO00OO000000O );OO00000OO0O00000O =1 -O000OO00OOO0OO0OO ;OO00OO0OOOO0OOOO0 +=(2 *O0O0OO00OO000000O +1 )*A .abs (OO00000OO0O00000O )**2 #line:289
		O0OOO0OOOOO00O0O0 .append (OO00OO0OOOO0OOOO0 *A .pi /O000OO00O000O0O0O **2 )#line:290
	return [OOOOOOO00OO000O0O ,O0OOO0OOOOO00O0O0 ]#line:291
def AB (OOOOO000OOO00O000 ,O00OOO0O0O00OO0OO ):#line:292
	OO000OOOOOO0O0000 =O00OOO0O0O00OO0OO ;O00OO00000000O0OO =4 ;O0OO00000O0OO00OO =15 ;OO000OOOOOO0O0000 =I (OO000OOOOOO0O0000 );O0O0O00000O0OO0OO =2 *A .pi /A .sqrt (2 *M *(OOOOO000OOO00O000 +X ));OO0OOO0OOOOO0000O =O0O0O00000O0OO0OO /20 ;O00OOOOO000O0000O =A .linspace (O00OO00000000O0OO ,O0OO00000O0OO00OO ,I (A .floor ((O0OO00000O0OO00OO -O00OO00000000O0OO )/OO0OOO0OOOOO0000O )+1 ));O0O0O0O0OO0000O00 =0 ;OOO0O00O0OO00O0OO =I (A .ceil (A .sqrt (2 *M *10 *C )*O0OO00000O0OO00OO ));OOO0OO0000OO000O0 =A .sqrt (2 *M *OOOOO000OOO00O000 );O00O0O0O00OOO00OO =A .linspace (-A .pi ,A .pi ,360 );OOO0000O0OO0O00OO =A .zeros (H (O00O0O0O00OOO00OO ),dtype =a );OO0OO00O00OOO0OO0 =A .zeros (H (O00O0O0O00OOO00OO ),dtype =a )#line:293
	for OOO0OO0O0O000O0OO in K (O0O0O0O0OO0000O00 ,OOO0O00O0OO00O0OO +1 ):#line:294
		O0O000O0O0O0O00O0 =d (O00OOOOO000O0000O ,OOOOO000OOO00O000 ,OOO0OO0O0O000O0OO );O00OO0OO0O0OOO000 =e (O00OOOOO000O0000O ,O0O000O0O0O0O00O0 [-1 ],OOO0OO0000OO000O0 ,OOO0OO0O0O000O0OO );O0OO0OOOOOOOOO00O =1 -O00OO0OO0O0OOO000 ;OOO0000O0OO0O00OO +=1j /(2 *OOO0OO0000OO000O0 )*(2 *OOO0OO0O0O000O0OO +1 )*O0OO0OOOOOOOOO00O *c (OOO0OO0O0O000O0OO ,A .cos (O00O0O0O00OOO00OO ))#line:295
		if OO000OOOOOO0O0000 ==OOO0OO0O0O000O0OO :OO0OO00O00OOO0OO0 +=1j /(2 *OOO0OO0000OO000O0 )*(2 *OOO0OO0O0O000O0OO +1 )*O0OO0OOOOOOOOO00O *c (OOO0OO0O0O000O0OO ,A .cos (O00O0O0O00OOO00OO ))#line:296
	OOO0000O0OO0O00OO =A .abs (OOO0000O0OO0O00OO )**2 ;OO0OO00O00OOO0OO0 =A .abs (OO0OO00O00OOO0OO0 )**2 ;return [OOO0000O0OO0O00OO ,OO0OO00O00OOO0OO0 ]#line:297
if __name__ =='__main__':AS =AO ();AS .mainloop ()