PKż =B¶óH‚|x|xspykeutils-0.2.1/examples.html Examples — spykeutils 0.2.1 documentation

ExamplesĀ¶

These examples demonstrate the usage of some functions in spykeutils. This includes the creation of a small Neo object hierarchy with toy data.

Creating the sample dataĀ¶

The functions in spykeutils work on electrophysiological data that is represented in Neo object hierarchies. Usually, you would load these objects from a file, but for the purpose of this demonstration we will manually create an object hierarchy to illustrate their structure. Note that most functions in spykeutils will also work with separate Neo data objects that are not contained in a complete hierarchy. First, we import the modules we will use:

>>> import quantities as pq
>>> import neo
>>> import scipy as sp

We start with some container objects - two segments that represent trials and two units (representing neurons) that produced the spike trains:

>>> segments = []
>>> segments.append(neo.Segment('Trial 1'))
>>> segments.append(neo.Segment('Trial 2'))
>>> units = []
>>> units.append(neo.Unit('Unit 1'))
>>> units.append(neo.Unit('Unit 2'))

We create some analog signals from a sine wave with additive Gaussian noise, four signals in each segment:

>>> wave = sp.sin(sp.linspace(0, 20*sp.pi, 10000)) * 10
>>> for i in range(8):
...     sig = wave + sp.randn(10000) * 3
...     signal = neo.AnalogSignal(sig*pq.uV, sampling_rate=1*pq.kHz)
...     signal.segment = segments[i%2]
...     segments[i%2].analogsignals.append(signal)

And some spike trains from regular intervals or random time points:

>>> trains = []
>>> trains.append(neo.SpikeTrain(sp.linspace(0, 10, 40)*pq.s, 10*pq.s))
>>> trains.append(neo.SpikeTrain(sp.linspace(0, 10, 60)*pq.s, 10*pq.s))
>>> trains.append(neo.SpikeTrain(sp.rand(50)*10*pq.s, 10*pq.s))
>>> trains.append(neo.SpikeTrain(sp.rand(70)*10*pq.s, 10*pq.s))

Now we create the relationships between the spike trains and container objects. Each unit has two spike trains, one in each segment:

>>> segments[0].spiketrains = [trains[0], trains[2]]
>>> segments[1].spiketrains = [trains[1], trains[3]]
>>> units[0].spiketrains = trains[:2]
>>> units[1].spiketrains = trains[2:4]
>>> for s in segments:
...     for st in s.spiketrains:
...         st.segment = s
>>> for u in units:
...     for st in u.spiketrains:
...         st.unit = u

Now that our sample data is ready, we will use some of the function from spykeutils to analyze it.

PSTHĀ¶

To create a peri stimulus time histogram from our spike trains, we call spykeutils.rate_estimation.psth(). This function can create multiple PSTHs and takes a dicionary of lists of spike trains. Since our spike trains were generated by two units, we will create two histograms, one for each unit:

>>> import spykeutils.rate_estimation
>>> st_dict = {}
>>> st_dict[units[0]] = units[0].spiketrains
>>> st_dict[units[1]] = units[1].spiketrains
>>> spykeutils.rate_estimation.psth(st_dict, 400*pq.ms)[0] 
{<neo.core.unit.Unit object at 0x...>: array([ 6.25,  5.  ,  5.  ,  5.  ,  3.75, ...

spykeutils.rate_estimation.psth() returns two values: A dictionary with the resulting histograms and a Quantity 1D with the bin edges.

If guiqwt is installed, we can also use the spykeutils.plot package to create a PSTH plot from our data (in this case we want a bar histogram and therefore only use spike trains from one unit):

>>> import spykeutils.plot
>>> spykeutils.plot.psth({units[1]: units[1].spiketrains}, bin_size=400*pq.ms, bar_plot=True) 

This will open a plot window like the following:

_images/psth.png

Spike Density EstimationĀ¶

Similar to a PSTH, a spike density estimation gives an esimate of the instantaneous firing rate. Instead of binning, it is based on a kernel convolution which results in a smoother estimate. Creating and SDE with spykeutils works very similar to creating a PSTH. Instead of manually choosing the size of the Gaussian kernel, spykeutils.rate_estimation.spike_density_estimation() also supports finding the optimal kernel size automatically for each unit:

>>> kernel_sizes = sp.logspace(2,3.3,100) * pq.ms
>>> spykeutils.rate_estimation.spike_density_estimation(st_dict, optimize_steps=kernel_sizes)[0] 
{<neo.core.unit.Unit object at 0x...>: array([ 5.05428068,  5.06979364,  5.08530387, ...

As with the PSTH, there is also a plot function for creating a spike density estimation. Here, we use both units because the function produces a line plot where both units can be shown at the same time:

>>> spykeutils.plot.sde(st_dict, maximum_kernel=1500*pq.ms, optimize_steps=100) 

The resulting plot will look like the following:

_images/sde.png

While spike density estimations are preferable to PSTHs in many cases, the picture also shows an important weakness: The estimation will generally be too low on margins. The areas where this happens become larger with kernel size, which is clearly visible from the rounded shape of Unit 1 (which really has a flat rate) with its very large kernel size.

Signal PlotĀ¶

As a final example, we will again use the spykeutils.plot package to create a plot of the signals we created. This plot will also display the timings of our spike trains.

>>> spykeutils.plot.signals(segments[0].analogsignals, spike_trains=segments[0].spiketrains, show_waveforms=False) 
_images/signal.png

The plot shows all four signals from the first segments as well as the spike times of both spike trains in the same segment.

Project Versions

Table Of Contents

Previous topic

Requirements

Next topic

API reference

This Page

PKż =B’Dś2626spykeutils-0.2.1/intro.html Requirements — spykeutils 0.2.1 documentation

RequirementsĀ¶

Spykeutils is a pure Python package and therefore easy to install. It depends on the following additional packages:

  • Python >= 2.7
  • neo >= 0.2.1
  • scipy
  • guiqwt >= 2.1.4 (Optional, for plotting)
  • tables (Optional, for analysis results data management. Also known as PyTables.)
  • scikit-learn (Optional, for spike sorting quality analysis using Gaussian cluster overlap.)

Please see the respective websites for instructions on how to install them if they are not present on your computer. If you use Linux, you might not have access rights to your Python package installation directory, depending on your configuration. In this case, you will have to execute all shell commands in this section with administrator privileges, e.g. by using sudo.

Download and InstallationĀ¶

The easiest way to get spykeutils is from the Python Package Index. If you have pip installed:

$ pip install spykeutils

Alternatively, if you have setuptools:

$ easy_install spykeutils

Users of NeuroDebian or its repositories (available for Debian and Ubuntu) can also install spykeutils using the package manager instead of pip:

$ sudo apt-get install python-spykeutils

Alternatively, you can get the latest version directly from GitHub at https://github.com/rproepp/spykeutils.

The master branch (selected by default) always contains the current stable version. If you want the latest development version (not recommended unless you need some features that do not exist in the stable version yet), select the develop branch. You can download the repository from the GitHub page or clone it using git and then install from the resulting folder:

$ python setup.py install

UsageĀ¶

For the most part, spykeutils is a collection of functions that work on Neo objects. Many functions also take quantities as parameters. Therefore, make sure to get an overview of neo and quantities before using spykeutils. Once you are familiar with these packages, have a look at the Examples or head to the API reference to browse the contents of spykeutils.

Project Versions

Table Of Contents

Previous topic

Welcome to the documentation of spykeutils!

Next topic

Examples

This Page

PKż =B[×dæ//spykeutils-0.2.1/index.html Welcome to the documentation of spykeutils! — spykeutils 0.2.1 documentation

Welcome to the documentation of spykeutils!Ā¶

Based on the Neo framework, spykeutils is a Python library for analyzing and plotting neurophysiological data. It can be used by itself or in conjunction with Spyke Viewer, a multi-platform GUI application for navigating electrophysiological datasets.

A mailinglist for discussion and support is available at https://groups.google.com/d/forum/spyke-viewer

Contents:

Indices and tablesĀ¶

Project Versions

Table Of Contents

Next topic

Requirements

This Page

PKż =BVxz­o0o0spykeutils-0.2.1/searchindex.jsSearch.setIndex({objects:{"":{spykeutils:[2,0,1,""]},"spykeutils.plugin.data_provider":{DataProvider:[1,3,1,""]},"spykeutils.conversions":{analog_signal_array_to_analog_signals:[2,2,1,""],spikes_to_spike_train:[2,2,1,""],epoch_array_to_epochs:[2,2,1,""],spike_train_to_spikes:[2,2,1,""],event_array_to_events:[2,2,1,""]},"spykeutils.plugin.analysis_plugin":{AnalysisPlugin:[1,3,1,""]},"spykeutils.progress_indicator":{ProgressIndicator:[2,3,1,""],ignores_cancel:[2,2,1,""],CancelException:[2,4,1,""]},"spykeutils.progress_indicator.ProgressIndicator":{begin:[2,1,1,""],done:[2,1,1,""],step:[2,1,1,""],set_ticks:[2,1,1,""],set_status:[2,1,1,""]},"spykeutils.stationarity":{spike_amplitude_histogram:[2,2,1,""]},spykeutils:{conversions:[2,0,1,""],rate_estimation:[2,0,1,""],stationarity:[2,0,1,""],sorting_quality_assesment:[2,0,1,""],correlations:[2,0,1,""],progress_indicator:[2,0,1,""],SpykeException:[2,3,1,""],plugin:[1,0,1,""]},"spykeutils.rate_estimation":{collapsed_spike_trains:[2,2,1,""],spike_density_estimation:[2,2,1,""],aligned_spike_trains:[2,2,1,""],binned_spike_trains:[2,2,1,""],psth:[2,2,1,""],minimum_spike_train_interval:[2,2,1,""],optimal_gauss_kernel_size:[2,2,1,""]},"spykeutils.plugin.analysis_plugin.AnalysisPlugin":{load:[1,1,1,""],get_parameters:[1,1,1,""],configure:[1,1,1,""],get_name:[1,1,1,""],start:[1,1,1,""],set_parameters:[1,1,1,""],save:[1,1,1,""]},"spykeutils.correlations":{correlogram:[2,2,1,""]},"spykeutils.plugin":{data_provider:[1,0,1,""],analysis_plugin:[1,0,1,""],gui_data:[1,0,1,""]},"spykeutils.plugin.data_provider.DataProvider":{analog_signals:[1,1,1,""],analog_signals_by_channel_and_segment:[1,1,1,""],data_dict:[1,1,1,""],refresh_view:[1,1,1,""],spike_trains_by_segment_and_unit:[1,1,1,""],epochs:[1,1,1,""],analog_signal_arrays_by_channelgroup_and_segment:[1,1,1,""],num_analog_signal_arrays:[1,1,1,""],segments:[1,1,1,""],analog_signals_by_segment_and_channel:[1,1,1,""],spike_trains_by_unit:[1,1,1,""],spikes_by_unit:[1,1,1,""],recording_channel_groups:[1,1,1,""],num_analog_signals:[1,1,1,""],analog_signal_arrays:[1,1,1,""],analog_signal_arrays_by_segment_and_channelgroup:[1,1,1,""],spikes_by_segment_and_unit:[1,1,1,""],analog_signals_by_channel:[1,1,1,""],units:[1,1,1,""],spike_trains:[1,1,1,""],events:[1,1,1,""],recording_channels:[1,1,1,""],blocks:[1,1,1,""],from_data:[1,5,1,""],epoch_arrays:[1,1,1,""],analog_signal_arrays_by_segment:[1,1,1,""],spike_trains_by_unit_and_segment:[1,1,1,""],spike_trains_by_segment:[1,1,1,""],labeled_epochs:[1,1,1,""],spikes_by_unit_and_segment:[1,1,1,""],spikes:[1,1,1,""],spikes_by_segment:[1,1,1,""],analog_signal_arrays_by_channelgroup:[1,1,1,""],event_arrays:[1,1,1,""],analog_signals_by_segment:[1,1,1,""],selection_blocks:[1,1,1,""],labeled_events:[1,1,1,""]},"spykeutils.sorting_quality_assesment":{overlap_fp_fn:[2,2,1,""],get_refperiod_violations:[2,2,1,""],calculate_overlap_fp_fn:[2,2,1,""],calculate_refperiod_fp:[2,2,1,""]}},terms:{all:[2,5,6,1],code:1,edg:6,illustr:6,skip:6,four:6,known:5,scalar:2,correl:2,follow:[2,5,6,1],sould:2,millisecond:1,middl:3,depend:[5,1],overlap_fp_fn:2,neurodebian:5,estim:[0,6,2,3],calculate_refperiod_fp:2,titl:2,recording_channel_group:1,under:2,suitabl:1,deserialize_paramet:1,everi:[2,1],string:[2,1],fals:[2,6,1],serialize_paramet:1,wave:6,mous:3,consider_guiparam:1,ident:2,veri:[2,6],affect:1,brows:5,relev:1,analog_signal_arrays_by_channelgroup:1,epoch_arrai:[2,1],button:3,list:[2,6,1],iter:2,correct:2,"try":2,small:6,analogsignalarrai:[2,1,3],refperiod:2,dimens:2,direct:2,rate:[2,6],pass:2,download:[0,5],further:1,append:6,num_bin:2,neo:[0,1,5,6,2],what:1,compar:2,neg:2,section:5,calcul:[2,3],spikes_by_unit:1,uniform:2,current:[2,5,1],version:[0,5,3],spykeview:1,analog_signal_arrays_by_segment_and_channelgroup:1,"new":[2,1,3],shimazaki:2,method:[2,1,3],acesss:1,gener:[2,6],error:2,boolitem:1,len:2,ubuntu:5,sine:6,sinc:6,interpret:2,convert:[2,1,3],mailinglist:0,convers:2,forum:0,hdf5:1,correlogram:2,larger:[2,6],dataproviderneo:1,trial:6,doctest:6,extrem:2,implement:[2,1],some_tim:1,sourc:[2,1],appli:2,modul:[0,1,6,2],refresh_view:1,prefer:6,apt:5,index2:2,bin_siz:[2,6],visibl:[2,6],instal:[0,5,6,1],total:2,unit:[2,6,1],plot:[0,3,2,4,5,6],from:[2,5,6,1],describ:2,would:6,peri:[2,6],shinomoto:2,dure:2,websit:5,superposit:2,call:[6,1],spike:[0,1,2,3,5,6],no_channelgroup:1,type:[2,1],administr:5,more:[2,1],sort:[2,5,3],flat:6,desir:2,get_nam:1,no_unit:1,visual:1,train:[2,6,1],accept:2,neurosci:2,easiest:5,must:2,none:[2,1],data_provid:[2,1],restor:1,setup:5,work:[2,5,6,1],annot:2,minimum:2,can:[0,1,2,3,5,6],learn:5,purpos:[6,1],def:1,instantan:[2,6],overrid:1,cancelexcept:2,encapsul:1,give:[2,6,1],process:[2,1],sudo:5,share:2,templat:2,high:2,calculate_overlap_fp_fn:2,want:[2,5,6,1],serial:1,occur:2,alwai:[2,5],spike_density_estim:[2,6],multipl:[2,6,1],anoth:2,data_dir:1,write:1,how:5,sig:6,pure:5,instead:[2,5,6,1],simpl:2,sin:6,updat:1,overridden:1,clone:5,after:[2,3],rate_estim:[2,6],befor:[2,5],mai:2,end:2,associ:1,demonstr:6,reshap:2,github:5,third:2,spyke:[0,1,2,3],classmethod:1,correspond:2,assign:2,maximum_kernel:6,inform:1,environ:1,analysis_plugin:[2,1],spike_trains_by_seg:1,origin:2,over:2,becaus:[6,1],outer:2,privileg:5,hierarchi:[1,6,3],paramet:[2,1,5,3],perfect:2,conjunct:0,group:[0,2],ignores_cancel:2,epoch:[2,1],better:1,platform:0,window:6,persist:1,cross:2,main:1,might:5,easier:2,non:1,bar_plot:6,"return":[2,1,6,3],thei:[2,5,1],python:[0,5,1],initi:3,framework:0,spike_amplitude_histogram:2,half:1,now:[6,3],discuss:0,assess:[2,3],max_lag:2,name:[2,1],sampling_r:6,changelog:[0,3],spike_train_to_spik:2,refresh:[1,3],linspac:6,separ:[2,6],easili:1,each:[2,6],debug:2,found:2,complet:[2,6],gui:[0,1,2],mean:[2,3],just:[2,1],analog_signals_by_segment_and_channel:1,best:2,selection_block:1,gaussian:[2,5,6,3],realli:6,set_statu:2,significantli:3,our:6,happen:6,extract:1,event:[2,1],shown:[2,6],matrix:2,space:2,crosscorrelogram:2,content:[0,5],optim:[2,6,3],hill:2,print:1,prewhiten:[2,3],matric:2,earlier:2,navig:0,advanc:2,pleas:5,get_refperiod_viol:2,given:[2,1],standard:2,base:[0,1,6,2],dictionari:[2,6,1],latest:5,releas:3,index1:2,afterward:1,thrown:2,save_guiparam:1,could:2,area:[2,6],round:6,length:2,whiten:2,propos:2,gauss_kernel:2,first:[2,6,1],oper:[2,1],rand:6,rang:[2,6],directli:[2,5,1],kernel:[2,6,3],onc:[2,5],arrai:[2,6,1],independ:2,qualiti:[2,5,3],number:[2,1],instruct:5,alreadi:1,done:2,hould:1,stabl:5,open:[6,1],spiketrain:[2,6,1],size:[2,6,3],differ:[2,1],returnd:1,script:[1,3],data:[0,1,5,6,2],caught:2,smoother:6,construct:2,stimulu:[2,6],attach:[2,1],toi:6,master:5,too:6,white:2,"final":6,store:1,low:6,shell:5,consol:[2,1],option:[2,5,1],relationship:[2,6],especi:2,tool:3,copi:[2,1],setuptool:5,specifi:[2,1],part:5,mostli:1,exactli:2,than:2,include_array_epoch:1,serv:1,provid:[2,1,3],remov:1,second:[2,1],structur:6,str:[2,1],were:[2,6],posit:2,"function":[2,5,6,1],comput:[2,5],no_seg:1,viewer:[0,1,2],few:2,packag:[0,1,2,4,5,6],have:[2,5,1],tabl:[0,5,1],need:[2,5,1],element:[2,1],border:2,analog_signals_by_seg:1,self:1,aligned_spike_train:2,rproepp:5,note:[2,6],also:[2,5,6,1],exampl:[0,5,6,1],take:[2,5,6],indic:[0,1,2],noth:2,singl:2,begin:2,scikit:5,unless:5,distribut:2,num_spik:2,normal:2,object:[2,1,5,6,3],spykeplugin:[1,3],most:[2,5,6,1],spike_train:[2,6,1],regular:[6,1],segment:[2,6,1],"class":[2,1],renam:3,later:2,cover:2,spikes_by_unit_and_seg:1,order:2,dummi:[2,1],determin:[2,1],left:2,show:[2,6,3],random:6,event_array_to_ev:2,distanc:2,find:[2,6],access:[5,1],onli:[2,1,6,3],neurophysiolog:0,randn:6,nois:[2,6],configur:[5,1],analog_signal_arrays_by_seg:1,data_provider_neo:1,should:[2,1],optimal_gauss_kernel_s:2,analog_signals_by_channel_and_seg:1,dict:[2,1],analyz:[0,6],spikes_by_segment_and_unit:1,analog_signals_by_channel:1,include_array_ev:1,folder:[5,1],psth:[0,6,2],data_dict:1,count:2,get:5,familiar:5,express:2,stop:2,obtain:1,cannot:1,num_step:2,progress:[2,1],report:[2,1],recalcul:2,requir:[0,5,2],bar:6,"public":3,remot:1,contain:[2,5,6,1],where:[2,6,1],view:[1,3],conform:1,set:[2,1],maximum:2,datatyp:1,eviron:1,see:5,exampleanalysi:1,result:[2,5,6,1],close:1,timelag:2,analog:[2,6,1],sorting_quality_asses:2,statu:2,label:1,between:6,"import":[6,1],rate_correct:2,attribut:1,altern:5,kei:1,weak:6,analysisplugin:1,labeled_ev:1,here:[2,6],otherwis:2,recording_channel:1,addit:[2,5,6,1],both:[2,6,1],last:2,get_paramet:1,plugin:[2,1,3],equal:2,equat:2,mani:[2,5,6],com:[0,5],load:[6,1],binned_spike_train:2,point:[2,6,1],instanti:1,overview:5,period:2,suppli:1,cancel:2,respect:[5,1],assum:2,esim:6,recordingchannelgroup:1,becom:6,evalu:2,event_arrai:[2,1],numpi:2,three:2,empti:1,much:2,gui_data:[2,1],valu:[2,6,1],optimize_step:[2,6],valueerror:2,spike_trains_by_unit_and_seg:1,fire:6,logspac:6,search:0,ani:2,spikes_by_seg:1,func:2,spykeutil:[0,1,2,4,5,6],present:[2,5,1],"case":[2,5,6],refractori:2,multi:0,therefor:[2,5,6],look:[5,6],guidata:1,quantiti:[2,5,6],align:2,properti:2,defin:1,"while":[2,6],pairwis:2,abov:2,analog_sign:1,pytabl:[5,1],margin:6,num_analog_sign:1,readi:[6,1],guiqwt:[5,6],neuron:6,them:5,epoch_array_to_epoch:2,cluster:[2,5,3],floatitem:1,no_channel:1,new_statu:2,st_dict:6,decor:2,develop:5,welcom:0,perform:1,make:5,belong:[2,1],eventarrai:[2,1],same:[2,6,1],progressind:[2,1],member:1,uniform_y_scal:2,spykeexcept:2,descend:2,document:[0,3],start:[2,6,1],pan:3,higher:2,http:[0,5],referenc:2,effect:2,covari:2,rais:2,user:[2,5],improv:3,include_waveform:2,recent:1,subpackag:[0,2],lower:1,appropri:1,off:2,kernel_s:[2,6],whole:2,well:6,inherit:1,without:[1,3],command:[5,1],thi:[2,5,6,1],choos:6,dimension:2,usual:6,collapsed_spike_train:2,violat:2,identifi:1,entri:[2,1],execut:[5,1],less:2,total_tim:2,spike_trains_by_segment_and_unit:1,detail:2,shape:[2,6],speed:3,yet:5,cut:2,easi:5,dicionari:[6,1],except:2,param:1,other:[2,1],densiti:[0,6,2,3],input:2,save:1,bin:[2,6],applic:0,which:[2,6,1],read:1,print_mor:1,stationar:2,sweep:2,grid:3,tick:2,apart:1,like:[2,6],specif:2,arbitrari:1,signal:[0,1,6,2],dataprovid:[1,3],integ:1,server:1,collect:5,api:[0,5,2],index:[0,1,5,2],channel:2,show_waveform:6,page:[0,5],two:[2,6,1],encount:2,spikes_to_spike_train:2,right:5,manual:6,interv:6,linux:5,some:[5,6,1],intern:1,sure:5,plugin_framework:1,home:3,analog_signal_arrays_by_channelgroup_and_seg:1,librari:0,lead:1,definit:1,minimum_spike_train_interv:2,overlap:5,waveform:2,analog_signal_arrai:1,progress_ind:[2,1],larg:[2,6],select:[5,1],necessari:1,border_correct:2,refer:[0,1,5,2],core:[2,6,1],who:2,dataitem:1,journal:2,usag:[0,5,6],step:2,analog_signal_array_to_analog_sign:2,repositori:5,major:3,subtract:2,num_analog_signal_arrai:1,electrophysiolog:[0,6],manag:5,includ:[2,6,1],recordingchannel:1,produc:6,block:1,own:1,consid:[2,1],convolut:6,"float":1,easy_instal:5,automat:[2,6,3],dataset:[0,1],down:1,ellipsi:6,been:[2,1],ensur:1,chang:[1,3],your:[5,1],conversion_mod:1,git:5,fill:2,wai:[2,5],pictur:6,support:[0,6,1],"long":2,avail:[0,5,3],width:2,interfac:1,inner:2,fraction:2,suit:1,analysi:[5,1],head:5,creation:6,offer:1,tupl:2,recommend:[5,1],histogram:[2,6],sde:6,line:[6,1],"true":[2,6,1],faster:2,info:1,made:1,possibl:3,clearli:6,displai:6,record:2,scipi:[5,6],sampl:[0,6,2],problem:2,similar:6,sklearn:2,khz:6,featur:5,creat:[0,1,6,2],"int":[2,1],certain:1,"abstract":1,censor:2,repres:6,exist:[5,1],evaluation_point:2,file:[6,1],pip:5,doe:2,set_tick:2,probabl:2,again:6,googl:0,analogsign:[2,1,6,3],when:[2,1,3],spike_trains_by_unit:1,"default":[2,1,5,3],signal_arrai:2,valid:1,bool:[2,1],branch:5,you:[2,5,6,1],epocharrai:[2,1],sequenc:[2,1],drift:2,ndarrai:2,from_data:1,amplitud:2,debian:5,axi:2,longer:2,algorithm:2,directori:[5,1],descript:2,set_paramet:1,itself:0,ignor:2,time:[2,6,1],labeled_epoch:1,parameterss:1},objtypes:{"0":"py:module","1":"py:method","2":"py:function","3":"py:class","4":"py:exception","5":"py:classmethod"},titles:["Welcome to the documentation of spykeutils!","plugin Package","API reference","Changelog","spykeutils.plot package","Requirements","Examples"],objnames:{"0":["py","module","Python module"],"1":["py","method","Python method"],"2":["py","function","Python function"],"3":["py","class","Python class"],"4":["py","exception","Python exception"],"5":["py","classmethod","Python class method"]},filenames:["index","apidoc/spykeutils.plugin","apidoc/spykeutils","changelog","apidoc/spykeutils.plot","intro","examples"]})PKż =BcµįĆeĆespykeutils-0.2.1/genindex.html Index — spykeutils 0.2.1 documentation

Index

A | B | C | D | E | F | G | I | L | M | N | O | P | R | S | U

A

aligned_spike_trains() (in module spykeutils.rate_estimation)
analog_signal_array_to_analog_signals() (in module spykeutils.conversions)
analog_signal_arrays() (DataProvider method)
analog_signal_arrays_by_channelgroup() (DataProvider method)
analog_signal_arrays_by_channelgroup_and_segment() (DataProvider method)
analog_signal_arrays_by_segment() (DataProvider method)
analog_signal_arrays_by_segment_and_channelgroup() (DataProvider method)
analog_signals() (DataProvider method)
analog_signals_by_channel() (DataProvider method)
analog_signals_by_channel_and_segment() (DataProvider method)
analog_signals_by_segment() (DataProvider method)
analog_signals_by_segment_and_channel() (DataProvider method)
AnalysisPlugin (class in spykeutils.plugin.analysis_plugin)

B

begin() (ProgressIndicator method)
binned_spike_trains() (in module spykeutils.rate_estimation)
blocks() (DataProvider method)

C

calculate_overlap_fp_fn() (in module spykeutils.sorting_quality_assesment)
calculate_refperiod_fp() (in module spykeutils.sorting_quality_assesment)
CancelException
collapsed_spike_trains() (in module spykeutils.rate_estimation)
configure() (AnalysisPlugin method)
correlogram() (in module spykeutils.correlations)

D

data_dict() (DataProvider method)
DataProvider (class in spykeutils.plugin.data_provider)
done() (ProgressIndicator method)

E

epoch_array_to_epochs() (in module spykeutils.conversions)
epoch_arrays() (DataProvider method)
epochs() (DataProvider method)
event_array_to_events() (in module spykeutils.conversions)
event_arrays() (DataProvider method)
events() (DataProvider method)

F

from_data() (spykeutils.plugin.data_provider.DataProvider class method)

G

get_name() (AnalysisPlugin method)
get_parameters() (AnalysisPlugin method)
get_refperiod_violations() (in module spykeutils.sorting_quality_assesment)

I

ignores_cancel() (in module spykeutils.progress_indicator)

L

labeled_epochs() (DataProvider method)
labeled_events() (DataProvider method)
load() (AnalysisPlugin method)

M

minimum_spike_train_interval() (in module spykeutils.rate_estimation)

N

num_analog_signal_arrays() (DataProvider method)
num_analog_signals() (DataProvider method)

O

optimal_gauss_kernel_size() (in module spykeutils.rate_estimation)
overlap_fp_fn() (in module spykeutils.sorting_quality_assesment)

P

ProgressIndicator (class in spykeutils.progress_indicator)
psth() (in module spykeutils.rate_estimation)

R

recording_channel_groups() (DataProvider method)
recording_channels() (DataProvider method)
refresh_view() (DataProvider method)

S

save() (AnalysisPlugin method)
segments() (DataProvider method)
selection_blocks() (DataProvider method)
set_parameters() (AnalysisPlugin method)
set_status() (ProgressIndicator method)
set_ticks() (ProgressIndicator method)
spike_amplitude_histogram() (in module spykeutils.stationarity)
spike_density_estimation() (in module spykeutils.rate_estimation)
spike_train_to_spikes() (in module spykeutils.conversions)
spike_trains() (DataProvider method)
spike_trains_by_segment() (DataProvider method)
spike_trains_by_segment_and_unit() (DataProvider method)
spike_trains_by_unit() (DataProvider method)
spike_trains_by_unit_and_segment() (DataProvider method)
spikes() (DataProvider method)
spikes_by_segment() (DataProvider method)
spikes_by_segment_and_unit() (DataProvider method)
spikes_by_unit() (DataProvider method)
spikes_by_unit_and_segment() (DataProvider method)
spikes_to_spike_train() (in module spykeutils.conversions)
SpykeException (class in spykeutils)
spykeutils (module)
spykeutils.conversions (module)
spykeutils.correlations (module)
spykeutils.plugin (module)
spykeutils.plugin.analysis_plugin (module)
spykeutils.plugin.data_provider (module)
spykeutils.plugin.gui_data (module)
spykeutils.progress_indicator (module)
spykeutils.rate_estimation (module)
spykeutils.sorting_quality_assesment (module)
spykeutils.stationarity (module)
start() (AnalysisPlugin method)
step() (ProgressIndicator method)

U

units() (DataProvider method)

Project Versions

This Page

PKż =BL^Ž))spykeutils-0.2.1/changelog.html Changelog — spykeutils 0.2.1 documentation

ChangelogĀ¶

Version 0.2.1Ā¶

  • Added “Home” and “Pan” tools for plots (useful when no middle mouse button is available).
  • Changed default grid in plots to show only major grid.
  • Added a method to DataProvider for refreshing views after object hierarchy changed.
  • New parameter for DataProvider AnalogSignal methods: AnalogSignalArrays can be automatically converted and returned.
  • Significantly improved speed of spike density estimation and optimal kernel size calculation.
  • Spike sorting quality assessment using gaussian clusters is now possible without prewhitening spikes or providing prewhitened means.
  • Renamed “spyke-plugin” script to “spykeplugin”

Version 0.2.0Ā¶

Initial documented public release.

Project Versions

Table Of Contents

Previous topic

plugin Package

This Page

PKż =BˆAōū("("spykeutils-0.2.1/search.html Search — spykeutils 0.2.1 documentation

Search

Please activate JavaScript to enable the search functionality.

From here you can search these documents. Enter your search words into the box below and click "search". Note that the search function will automatically search for all of the words. Pages containing fewer words won't appear in the result list.

Project Versions

This Page

PKż =BÉq’ęęspykeutils-0.2.1/.buildinfo# Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. config: 7970c48652fcfde429e227d40502cb1d tags: fbb0d17656682115ca4d033fb2f83ba1 PKż =B "öÄAĮ@œnśōlē?©Y)ƒłūųfØt!TŗāEņČlśœ™ķ“ź^ĢV®’_²_ŗØ%do~jĀ°°<ż Ķ:’Šf»†Ś ‰ķŸ²×ł[F_ƒ•Ć¤ue½Żl·X» ·łźōĆv®ūģ½ż`ĪK˜Ąƌ<ż|7»ŪĖĻn<9Śf®­ɝŠ Iń—ŖÕōŪ-Ś÷Ó§lz*EmĄb˜ŌÖ U²ß5—ĀmG¬@¹ń"¬K”fwœ«7¢Ū#­ūĖ’„Z]Z@dä4‘s§m€Ī®1=·¤šh)ć—·Üt¢j¶lh®øÜ¢@֎ĆMŻ~QւyF’k['a5ūA£łnŠŪÖ1ąVŗȞ{ź±Ł¼›zŪĻ 8ęØī[čŚ C²mج³0"8’„‚”k`ĪrŃ"Ć²VyiCE1„œKR`øŌ^6ÆH¾ šaļ">]tÉP”ō€l±e„÷ćŖ`łŠ+EHžp ©óu@˜ž;Ž [só}¶bÜZ¾m,ÖY©“ŗ6Į¦:ĆÆŁk7žļqćvœŻa¦6+ Pč3ļ˜ŽųåĖŠmüIMZSj%\bgų£ÓŗäźtŲuž›a žĒƒ6žQ²’ׄtk°Šé!Q@4§S—Cćµøy‚Ģ4‘A:Ų’~źxpģŸń ]g±wnł6Š ˆ½ŽbŅthĶ‹Qģ{œ\Ģé–'ąCB% ąČz§€/؄« `+Žx Æbќļœ*Fłó#³;`?fy³œĖ¼–ˆ"dėåīÉ֚¦XŽhāŲžc€‚j)ŹŚĀƈŚłøB×ā‘A§l¼é83Įč|Õźč3³bB"ߥcIvē©ĘnĮ‡Ę J­Š FŌh÷s”ø¼¤JTuu\őšģ†ĖDX­h¹Xx="—>DB²÷j/"_<@>’qūhŽ”„£¼“‚—ąd¬Š•dśČqŽžæуŒŒņ¤¶įD€ąć1'ś;00I>!HhĶB0żk-­®öĶÓ¦{²Rp9Ó&e¬0é³Ėč^ĪF}Čļ„łÄvXč<' A Äčģ ©y‘2=ōö1]±4>”P,c:åօYtć4w•“ńąū’»øEāćg;¤ŒM÷oÖ2)-wŃfb ŗŒ·āˆ3õ¢u„ū®QėÓD0{čK…ÖW Ū+qYķ$¹$#š&IPzXĆ8ÕK7č£ fŠ8F¤†É”›Ž4LöP– ÷x™üŲŗ(ÄcÕW.óļōīO£±oo\żÜ©ū?qækPKż =BsÕõ>,>,!spykeutils-0.2.1/py-modindex.html Python Module Index — spykeutils 0.2.1 documentation

Project Versions

This Page

PKā =BkuFņpp)spykeutils-0.2.1/_static/down-pressed.png‰PNG  IHDRó’asRGB®ĪébKGDłC» pHYs × ×B(›xtIMEŚ -vF#šIDAT8ĖĶŅ!OAąļŚJ, ++@ I v¢bĆæ@Wń7F’ HNā±ś# ‚4”8Ģ6¹4×6Tń’MvvŽ¼7³»źœūöDsæ‡aóxā1†U īq‚;<¦ˆĻ EøĀ-f)āŗj%ßpˆo4xFą78G…>ę)ā-ƒ ž ”ĀEYm4%7YTk-¾–Q¶a–"NWAo-y†eqŅį¾,)ā ÓŅYÓŃś“ptŽŠå½\hóq“Īķm˜sŌz¦ģG]ÄNń‡Ņa…‡röē߶Øs^lć vh\ī2Ł%šāßćŽ0EeRvŲIEND®B`‚PKā =B4µīī"spykeutils-0.2.1/_static/jquery.js/*! * jQuery JavaScript Library v1.4.2 * http://jquery.com/ * * Copyright 2010, John Resig * Dual licensed under the MIT or GPL Version 2 licenses. * http://jquery.org/license * * Includes Sizzle.js * http://sizzlejs.com/ * Copyright 2010, The Dojo Foundation * Released under the MIT, BSD, and GPL Licenses. * * Date: Sat Feb 13 22:33:48 2010 -0500 */ (function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,j){var i=a.length;if(typeof b==="object"){for(var o in b)X(a,o,b[o],f,e,d);return a}if(d!==w){f=!j&&f&&c.isFunction(d);for(o=0;o)[^>]*$|^#([\w-]+)$/,Ua=/^.[^:#\[\.,]*$/,Va=/\S/, Wa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Xa=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,P=navigator.userAgent,xa=false,Q=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,R=Array.prototype.slice,ya=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(a==="body"&&!b){this.context=s;this[0]=s.body;this.selector="body";this.length=1;return this}if(typeof a==="string")if((d=Ta.exec(a))&& (d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Xa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=sa([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}return c.merge(this,a)}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return T.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagName(a);return c.merge(this, a)}else return!b||b.jquery?(b||T).find(a):c(b).find(a);else if(c.isFunction(a))return T.ready(a);if(a.selector!==w){this.selector=a.selector;this.context=a.context}return c.makeArray(a,this)},selector:"",jquery:"1.4.2",length:0,size:function(){return this.length},toArray:function(){return R.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){var f=c();c.isArray(a)?ba.apply(f,a):c.merge(f,a);f.prevObject=this;f.context=this.context;if(b=== "find")f.selector=this.selector+(this.selector?" ":"")+d;else if(b)f.selector=this.selector+"."+b+"("+d+")";return f},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(R.apply(this,arguments),"slice",R.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this, function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,j,i,o;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b
a"; var e=d.getElementsByTagName("*"),j=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!j)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(j.getAttribute("style")),hrefNormalized:j.getAttribute("href")==="/a",opacity:/^0.55$/.test(j.style.opacity),cssFloat:!!j.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:s.createElement("select").appendChild(s.createElement("option")).selected, parentNode:d.removeChild(d.appendChild(s.createElement("div"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};b.type="text/javascript";try{b.appendChild(s.createTextNode("window."+f+"=1;"))}catch(i){}a.insertBefore(b,a.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}try{delete b.test}catch(o){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function k(){c.support.noCloneEvent= false;d.detachEvent("onclick",k)});d.cloneNode(true).fireEvent("onclick")}d=s.createElement("div");d.innerHTML="";a=s.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var k=s.createElement("div");k.style.width=k.style.paddingLeft="1px";s.body.appendChild(k);c.boxModel=c.support.boxModel=k.offsetWidth===2;s.body.removeChild(k).style.display="none"});a=function(k){var n= s.createElement("div");k="on"+k;var r=k in n;if(!r){n.setAttribute(k,"return;");r=typeof n[k]==="function"}return r};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=j=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ya=0,za={};c.extend({cache:{},expando:G,noData:{embed:true,object:true, applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var f=a[G],e=c.cache;if(!f&&typeof b==="string"&&d===w)return null;f||(f=++Ya);if(typeof b==="object"){a[G]=f;e[f]=c.extend(true,{},b)}else if(!e[f]){a[G]=f;e[f]={}}a=e[f];if(d!==w)a[b]=d;return typeof b==="string"?a[b]:a}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{if(c.support.deleteExpando)delete a[c.expando]; else a.removeAttribute&&a.removeAttribute(c.expando);delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===w){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===w&&this.length)f=c.data(this[0],a);return f===w&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this, a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b=== w)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var Aa=/[\n\t]/g,ca=/\s+/,Za=/\r/g,$a=/href|src|style/,ab=/(button|input)/i,bb=/(button|input|object|select|textarea)/i, cb=/^(a|area)$/i,Ba=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(n){var r=c(this);r.addClass(a.call(this,n,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d-1)return true;return false},val:function(a){if(a===w){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var j=b?d:0;for(d=b?d+1:e.length;j=0;else if(c.nodeName(this,"select")){var u=c.makeArray(r);c("option",this).each(function(){this.selected= c.inArray(c(this).val(),u)>=0});if(!u.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return w;if(f&&b in c.attrFn)return c(a)[b](d);f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==w;b=f&&c.props[b]||b;if(a.nodeType===1){var j=$a.test(b);if(b in a&&f&&!j){if(e){b==="type"&&ab.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed"); a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&j?a.getAttribute(b,2):a.getAttribute(b);return a===null?w:a}return c.style(a,b,d)}});var O=/\.(.*)$/,db=function(a){return a.replace(/[^\w\s\.\|`]/g, function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;var e,j;if(d.handler){e=d;d=e.handler}if(!d.guid)d.guid=c.guid++;if(j=c.data(a)){var i=j.events=j.events||{},o=j.handle;if(!o)j.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,arguments):w};o.elem=a;b=b.split(" ");for(var k,n=0,r;k=b[n++];){j=e?c.extend({},e):{handler:d,data:f};if(k.indexOf(".")>-1){r=k.split("."); k=r.shift();j.namespace=r.slice(0).sort().join(".")}else{r=[];j.namespace=""}j.type=k;j.guid=d.guid;var u=i[k],z=c.event.special[k]||{};if(!u){u=i[k]=[];if(!z.setup||z.setup.call(a,f,r,o)===false)if(a.addEventListener)a.addEventListener(k,o,false);else a.attachEvent&&a.attachEvent("on"+k,o)}if(z.add){z.add.call(a,j);if(!j.handler.guid)j.handler.guid=d.guid}u.push(j);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){var e,j=0,i,o,k,n,r,u,z=c.data(a), C=z&&z.events;if(z&&C){if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(e in C)c.event.remove(a,e+b)}else{for(b=b.split(" ");e=b[j++];){n=e;i=e.indexOf(".")<0;o=[];if(!i){o=e.split(".");e=o.shift();k=new RegExp("(^|\\.)"+c.map(o.slice(0).sort(),db).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(r=C[e])if(d){n=c.event.special[e]||{};for(B=f||0;B=0){a.type= e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return w;a.result=w;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(j){}if(!a.isPropagationStopped()&& f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){f=a.target;var i,o=c.nodeName(f,"a")&&e==="click",k=c.event.special[e]||{};if((!k._default||k._default.call(d,a)===false)&&!o&&!(f&&f.nodeName&&c.noData[f.nodeName.toLowerCase()])){try{if(f[e]){if(i=f["on"+e])f["on"+e]=null;c.event.triggered=true;f[e]()}}catch(n){}if(i)f["on"+e]=i;c.event.triggered=false}}},handle:function(a){var b,d,f,e;a=arguments[0]=c.event.fix(a||A.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive; if(!b){d=a.type.split(".");a.type=d.shift();f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)")}e=c.data(this,"events");d=e[a.type];if(e&&d){d=d.slice(0);e=0;for(var j=d.length;e-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},fa=function(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Fa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data", e);if(!(f===w||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:fa,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return fa.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return fa.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a, "_change_data",Fa(a))}},setup:function(){if(this.type==="file")return false;for(var a in ea)c.event.add(this,a+".specialChange",ea[a]);return da.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return da.test(this.nodeName)}};ea=c.event.special.change.filters}s.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventListener(a, d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var j in d)this[b](j,f,d[j],e);return this}if(c.isFunction(f)){e=f;f=w}var i=b==="one"?c.proxy(e,function(k){c(this).unbind(k,i);return e.apply(this,arguments)}):e;if(d==="unload"&&b!=="one")this.one(d,f,e);else{j=0;for(var o=this.length;j0){y=t;break}}t=t[g]}m[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, e=0,j=Object.prototype.toString,i=false,o=true;[0,0].sort(function(){o=false;return 0});var k=function(g,h,l,m){l=l||[];var q=h=h||s;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||typeof g!=="string")return l;for(var p=[],v,t,y,S,H=true,M=x(h),I=g;(f.exec(""),v=f.exec(I))!==null;){I=v[3];p.push(v[1]);if(v[2]){S=v[3];break}}if(p.length>1&&r.exec(g))if(p.length===2&&n.relative[p[0]])t=ga(p[0]+p[1],h);else for(t=n.relative[p[0]]?[h]:k(p.shift(),h);p.length;){g=p.shift();if(n.relative[g])g+=p.shift(); t=ga(g,t)}else{if(!m&&p.length>1&&h.nodeType===9&&!M&&n.match.ID.test(p[0])&&!n.match.ID.test(p[p.length-1])){v=k.find(p.shift(),h,M);h=v.expr?k.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=m?{expr:p.pop(),set:z(m)}:k.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=v.expr?k.filter(v.expr,v.set):v.set;if(p.length>0)y=z(t);else H=false;for(;p.length;){var D=p.pop();v=D;if(n.relative[D])v=p.pop();else D="";if(v==null)v=h;n.relative[D](y,v,M)}}else y=[]}y||(y=t);y||k.error(D|| g);if(j.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))l.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&l.push(t[g]);else l.push.apply(l,y);else z(y,l);if(S){k(S,q,l,m);k.uniqueSort(l)}return l};k.uniqueSort=function(g){if(B){i=o;g.sort(B);if(i)for(var h=1;h":function(g,h){var l=typeof h==="string";if(l&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m=0))l||m.push(v);else if(l)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()}, CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,l,m,q,p){h=g[1].replace(/\\/g,"");if(!p&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,l,m,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,h);else{g=k.filter(g[3],h,l,true^q);l||m.push.apply(m, g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,l){return!!k(l[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)}, text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}}, setFilters:{first:function(g,h){return h===0},last:function(g,h,l,m){return h===m.length-1},even:function(g,h){return h%2===0},odd:function(g,h){return h%2===1},lt:function(g,h,l){return hl[3]-0},nth:function(g,h,l){return l[3]-0===h},eq:function(g,h,l){return l[3]-0===h}},filter:{PSEUDO:function(g,h,l,m){var q=h[1],p=n.filters[q];if(p)return p(g,l,h,m);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h= h[3];l=0;for(m=h.length;l=0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var l=h[1];g=n.attrHandle[l]?n.attrHandle[l](g):g[l]!=null?g[l]:g.getAttribute(l);l=g+"";var m=h[2];h=h[4];return g==null?m==="!=":m=== "="?l===h:m==="*="?l.indexOf(h)>=0:m==="~="?(" "+l+" ").indexOf(h)>=0:!h?l&&g!==false:m==="!="?l!==h:m==="^="?l.indexOf(h)===0:m==="$="?l.substr(l.length-h.length)===h:m==="|="?l===h||l.substr(0,h.length+1)===h+"-":false},POS:function(g,h,l,m){var q=n.setFilters[h[2]];if(q)return q(g,l,h,m)}}},r=n.match.POS;for(var u in n.match){n.match[u]=new RegExp(n.match[u].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[u]=new RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[u].source.replace(/\\(\d+)/g,function(g, h){return"\\"+(h-0+1)}))}var z=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C){z=function(g,h){h=h||[];if(j.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var l=0,m=g.length;l";var l=s.documentElement;l.insertBefore(g,l.firstChild);if(s.getElementById(h)){n.find.ID=function(m,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(m[1]))?q.id===m[1]||typeof q.getAttributeNode!=="undefined"&& q.getAttributeNode("id").nodeValue===m[1]?[q]:w:[]};n.filter.ID=function(m,q){var p=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&p&&p.nodeValue===q}}l.removeChild(g);l=g=null})();(function(){var g=s.createElement("div");g.appendChild(s.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(h,l){l=l.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var m=0;l[m];m++)l[m].nodeType===1&&h.push(l[m]);l=h}return l};g.innerHTML=""; if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(h){return h.getAttribute("href",2)};g=null})();s.querySelectorAll&&function(){var g=k,h=s.createElement("div");h.innerHTML="

";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){k=function(m,q,p,v){q=q||s;if(!v&&q.nodeType===9&&!x(q))try{return z(q.querySelectorAll(m),p)}catch(t){}return g(m,q,p,v)};for(var l in g)k[l]=g[l];h=null}}(); (function(){var g=s.createElement("div");g.innerHTML="
";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(h,l,m){if(typeof l.getElementsByClassName!=="undefined"&&!m)return l.getElementsByClassName(h[1])};g=null}}})();var E=s.compareDocumentPosition?function(g,h){return!!(g.compareDocumentPosition(h)&16)}: function(g,h){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},ga=function(g,h){var l=[],m="",q;for(h=h.nodeType?[h]:h;q=n.match.PSEUDO.exec(g);){m+=q[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;q=0;for(var p=h.length;q=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f0)for(var j=d;j0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,j= {},i;if(f&&a.length){e=0;for(var o=a.length;e-1:c(f).is(e)){d.push({selector:i,elem:f});delete j[i]}}f=f.parentNode}}return d}var k=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(n,r){for(;r&&r.ownerDocument&&r!==b;){if(k?k.index(r)>-1:c(r).is(a))return r;r=r.parentNode}return null})},index:function(a){if(!a||typeof a=== "string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(qa(a[0])||qa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode", d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")? a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))&&fb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===w||a.nodeType!==1||!c(a).is(d));){a.nodeType=== 1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ja=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ka=/(<([\w:]+)[^>]*?)\/>/g,hb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,La=/<([\w:]+)/,ib=/"},F={option:[1,""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div
","
"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d= c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this}, wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})}, prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b, this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,f;(f=this[d])!=null;d++)if(!a||c.filter(a,[f]).length){if(!b&&f.nodeType===1){c.cleanData(f.getElementsByTagName("*"));c.cleanData([f])}f.parentNode&&f.parentNode.removeChild(f)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild); return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Ja,"").replace(/=([^="'>\s]+\/)>/g,'="$1">').replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){ra(this,b);ra(this.find("*"),b.find("*"))}return b},html:function(a){if(a===w)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Ja, ""):null;else if(typeof a==="string"&&!ta.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(La.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ka,Ma);try{for(var b=0,d=this.length;b0||e.cacheable||this.length>1?k.cloneNode(true):k)}o.length&&c.each(o,Qa)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);var e=this.length===1&&this[0].parentNode;if(e&&e.nodeType===11&&e.childNodes.length===1&&d.length===1){d[b](this[0]); return this}else{e=0;for(var j=d.length;e0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),i);f=f.concat(i)}return this.pushStack(f,a,d.selector)}}});c.extend({clean:function(a,b,d,f){b=b||s;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||s;for(var e=[],j=0,i;(i=a[j])!=null;j++){if(typeof i==="number")i+="";if(i){if(typeof i==="string"&&!jb.test(i))i=b.createTextNode(i);else if(typeof i==="string"){i=i.replace(Ka,Ma);var o=(La.exec(i)||["", ""])[1].toLowerCase(),k=F[o]||F._default,n=k[0],r=b.createElement("div");for(r.innerHTML=k[1]+i+k[2];n--;)r=r.lastChild;if(!c.support.tbody){n=ib.test(i);o=o==="table"&&!n?r.firstChild&&r.firstChild.childNodes:k[1]===""&&!n?r.childNodes:[];for(k=o.length-1;k>=0;--k)c.nodeName(o[k],"tbody")&&!o[k].childNodes.length&&o[k].parentNode.removeChild(o[k])}!c.support.leadingWhitespace&&V.test(i)&&r.insertBefore(b.createTextNode(V.exec(i)[0]),r.firstChild);i=r.childNodes}if(i.nodeType)e.push(i);else e= c.merge(e,i)}}if(d)for(j=0;e[j];j++)if(f&&c.nodeName(e[j],"script")&&(!e[j].type||e[j].type.toLowerCase()==="text/javascript"))f.push(e[j].parentNode?e[j].parentNode.removeChild(e[j]):e[j]);else{e[j].nodeType===1&&e.splice.apply(e,[j+1,0].concat(c.makeArray(e[j].getElementsByTagName("script"))));d.appendChild(e[j])}return e},cleanData:function(a){for(var b,d,f=c.cache,e=c.event.special,j=c.support.deleteExpando,i=0,o;(o=a[i])!=null;i++)if(d=o[c.expando]){b=f[d];if(b.events)for(var k in b.events)e[k]? c.event.remove(o,k):Ca(o,k,b.handle);if(j)delete o[c.expando];else o.removeAttribute&&o.removeAttribute(c.expando);delete f[d]}}});var kb=/z-?index|font-?weight|opacity|zoom|line-?height/i,Na=/alpha\([^)]*\)/,Oa=/opacity=([^)]*)/,ha=/float/i,ia=/-([a-z])/ig,lb=/([A-Z])/g,mb=/^-?\d+(?:px)?$/i,nb=/^-?\d/,ob={position:"absolute",visibility:"hidden",display:"block"},pb=["Left","Right"],qb=["Top","Bottom"],rb=s.defaultView&&s.defaultView.getComputedStyle,Pa=c.support.cssFloat?"cssFloat":"styleFloat",ja= function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===w)return c.curCSS(d,f);if(typeof e==="number"&&!kb.test(f))e+="px";c.style(d,f,e)})};c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return w;if((b==="width"||b==="height")&&parseFloat(d)<0)d=w;var f=a.style||a,e=d!==w;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter= Na.test(a)?a.replace(Na,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Oa.exec(f.filter)[1])/100+"":""}if(ha.test(b))b=Pa;b=b.replace(ia,ja);if(e)f[b]=d;return f[b]},css:function(a,b,d,f){if(b==="width"||b==="height"){var e,j=b==="width"?pb:qb;function i(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(j,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a, "border"+this+"Width",true))||0})}a.offsetWidth!==0?i():c.swap(a,ob,i);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&a.currentStyle){f=Oa.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ha.test(b))b=Pa;if(!d&&e&&e[b])f=e[b];else if(rb){if(ha.test(b))b="float";b=b.replace(lb,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f= a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ia,ja);f=a.currentStyle[b]||a.currentStyle[d];if(!mb.test(f)&&nb.test(f)){b=e.left;var j=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=j}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b= a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var sb=J(),tb=//gi,ub=/select|textarea/i,vb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ka=/\?/,wb=/(\?|&)_=.*?(&|$)/,xb=/^(\w+:)?\/\/([^\/?#]+)/,yb=/%20/g,zb=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!== "string")return zb.call(this,a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);f="POST"}var j=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(i,o){if(o==="success"||o==="notmodified")j.html(e?c("
").append(i.responseText.replace(tb,"")).find(e):i.responseText);d&&j.each(d,[i.responseText,o,i])}});return this}, serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ub.test(this.nodeName)||vb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href, global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!=="file:"||!A.ActiveXObject)?function(){return new A.XMLHttpRequest}:function(){try{return new A.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&& e.success.call(k,o,i,x);e.global&&f("ajaxSuccess",[x,e])}function d(){e.complete&&e.complete.call(k,x,i);e.global&&f("ajaxComplete",[x,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),j,i,o,k=a&&a.context||e,n=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(n==="GET")N.test(e.url)||(e.url+=(ka.test(e.url)? "&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||N.test(e.url))){j=e.jsonpCallback||"jsonp"+sb++;if(e.data)e.data=(e.data+"").replace(N,"="+j+"$1");e.url=e.url.replace(N,"="+j+"$1");e.dataType="script";A[j]=A[j]||function(q){o=q;b();d();A[j]=w;try{delete A[j]}catch(p){}z&&z.removeChild(C)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache=== false&&n==="GET"){var r=J(),u=e.url.replace(wb,"$1_="+r+"$2");e.url=u+(u===e.url?(ka.test(e.url)?"&":"?")+"_="+r:"")}if(e.data&&n==="GET")e.url+=(ka.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&c.event.trigger("ajaxStart");r=(r=xb.exec(e.url))&&(r[1]&&r[1]!==location.protocol||r[2]!==location.host);if(e.dataType==="script"&&n==="GET"&&r){var z=s.getElementsByTagName("head")[0]||s.documentElement,C=s.createElement("script");C.src=e.url;if(e.scriptCharset)C.charset=e.scriptCharset;if(!j){var B= false;C.onload=C.onreadystatechange=function(){if(!B&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){B=true;b();d();C.onload=C.onreadystatechange=null;z&&C.parentNode&&z.removeChild(C)}}}z.insertBefore(C,z.firstChild);return w}var E=false,x=e.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&x.setRequestHeader("If-Modified-Since", c.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader("If-None-Match",c.etag[e.url])}r||x.setRequestHeader("X-Requested-With","XMLHttpRequest");x.setRequestHeader("Accept",e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(ga){}if(e.beforeSend&&e.beforeSend.call(k,x,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");x.abort();return false}e.global&&f("ajaxSend",[x,e]);var g=x.onreadystatechange=function(q){if(!x||x.readyState===0||q==="abort"){E|| d();E=true;if(x)x.onreadystatechange=c.noop}else if(!E&&x&&(x.readyState===4||q==="timeout")){E=true;x.onreadystatechange=c.noop;i=q==="timeout"?"timeout":!c.httpSuccess(x)?"error":e.ifModified&&c.httpNotModified(x,e.url)?"notmodified":"success";var p;if(i==="success")try{o=c.httpData(x,e.dataType,e)}catch(v){i="parsererror";p=v}if(i==="success"||i==="notmodified")j||b();else c.handleError(e,x,i,p);d();q==="timeout"&&x.abort();if(e.async)x=null}};try{var h=x.abort;x.abort=function(){x&&h.call(x); g("abort")}}catch(l){}e.async&&e.timeout>0&&setTimeout(function(){x&&!E&&g("timeout")},e.timeout);try{x.send(n==="POST"||n==="PUT"||n==="DELETE"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.async||g();return x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status=== 1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b=== "json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(i,o){if(c.isArray(o))c.each(o,function(k,n){b||/\[\]$/.test(i)?f(i,n):d(i+"["+(typeof n==="object"||c.isArray(n)?k:"")+"]",n)});else!b&&o!=null&&typeof o==="object"?c.each(o,function(k,n){d(i+"["+k+"]",n)}):f(i,o)}function f(i,o){o=c.isFunction(o)?o():o;e[e.length]=encodeURIComponent(i)+"="+encodeURIComponent(o)}var e=[];if(b===w)b=c.ajaxSettings.traditional; if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var j in a)d(j,a[j]);return e.join("&").replace(yb,"+")}});var la={},Ab=/toggle|show|hide/,Bb=/^([+-]=)?([\d+-.]+)(.*)$/,W,va=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();la[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration=== "number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]|| c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(j){return e.step(j)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start; this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now= this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem, e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b
"; a.insertBefore(b,a.firstChild);d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==j;a.removeChild(b); c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),j=parseInt(c.curCSS(a,"top",true),10)||0,i=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a, d,e);d={top:b.top-e.top+j,left:b.left-e.left+i};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top- f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],j;if(!e)return null;if(f!==w)return this.each(function(){if(j=wa(this))j.scrollTo(!a?f:c(j).scrollLeft(),a?f:c(j).scrollTop());else this[d]=f});else return(j=wa(e))?"pageXOffset"in j?j[a?"pageYOffset": "pageXOffset"]:c.support.boxModel&&j.document.documentElement[d]||j.document.body[d]:e[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(j){var i=c(this);i[d](f.call(this,j,i[d]()))});return"scrollTo"in e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===w?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});A.jQuery=A.$=c})(window); PKā =BšhßŪkk!spykeutils-0.2.1/_static/down.png‰PNG  IHDRó’asRGB®ĪébKGDłC» pHYs × ×B(›xtIMEŚ"ÅķU{ėIDAT8ĖĶŅ”NCAŠóŚJ, ++@ ™4>‡Øā/ŠUü’¤^,†~T&Ō3M^^^ŪPÅM6ŁŁ¹sļĢī*„ōķ‰RJæ‡a)e¼GńĆ*ƒœąń¹”čWøÅ<"®«Fņ ‡ųFgÜć78G…>q ƒ†ĮOIØp‘«‰:s“õAÕjń5GŁ†yDœ®ƒ^+y†U:ép_%G§@D|ašÕ­O“£s„Ę(ļy”M,"āØĶķm˜sŌx:÷£.b§@D|`–V˜åŁŸŪ²”²ÜĘģŠøÜe²KąÅæĒ/źG!‚ ™IEND®B`‚PKÜ =B½„:‰66!spykeutils-0.2.1/_static/icon.ico h& ØŽ(  ```(PPPę%%%’vvv'___ē...žjjjö’’’oooŻ777žöBBBF%b^^Š”’ÉŸœ›į•““Īkge’(""-ŖŖŖ···ØccdžˆˆˆńPPPFPNNsĮ¾¼õūéąŃüŪŹ¤üŌĄ•üŚÉ¤ūéßŃĒĆĮūˆ‡…Ī‘’ž›žŸ¾ŖŖŖ USQuįŪ×ķżÓ¾†üÓ“bźą³lśčĒdüćĀdüÕ“bżĶ·†źāÜī†„„ŪĢĢå *ÅĀĄéü×ĆtłéĶ]łōÕ\{ĪeɾęØ{łłą\łōÕ\łąæ\śĢ±sÕŠĶģIDD1}{{½Ļ£·’Ō–oŹbĮĖé»^`ÄPՆŃx‘ūūķIęņŠQ…ŃlhŗDĀŸĢ‚ß–•“œ™——æw½YÆzØƧ·ĪÓcbĘX«qĖe…^ÄR„ćóÖ?WĀIµŒÓxh„ŠXōĶ°G­«Ŗʚ——ĮūŻŌ3J-˜——¤‡‡‡"˜–˜šėėė&ssśµ]]śŖłłł.ņņņæææææææææææ‹‹‹ˆ~zzE°°°usssd==ų›ffś²śśś7ųųų%īīī’’’aaeQ›——›³±±|jjŸ·ĄvŃŃŃÖÖÖŸŸŸ ~~€…žœ*»»»1©Ø©˜•••Ø–”–„“‘“ŖŸŸŸ£¤¤ F’ü’ų’ńšcąĻ»ļ ‡w\÷\G$÷§ļēļļŸš( @ ^^^žTTT’222’ ’cccŸ]]]’777ž ’NNN’lll eee’<<<ž ’ZZZ’}}}’uuuŸmmm’CCCž ’ddd’ŠŠŠžAAAŻ|||Œwww’HHHž’ooo’šššžHHHŽ###ŪŪŪīNNNž’xxx’§§§žRRRŽ,,, A"1-+Ŗ732Ā:64Å300°*'%ŠL¶¶¶ÓÓÓŹyyy’’’³³³žZZZŽ555}NJIŪ‘ŽŒžÄĆĀ’ߎŽ’ķģģ’īķķ’āįį’ČĒĘ’š—–’XTTģ.*(—ČČČŃŃŃŹ’…††ž‚’ƒƒƒžfffĢ555 UOMKŚ¹·¶’ųųų’žśö’żīåöüåŲŲüŽĪĖūŽĪĖüäÖŲżģćöżłō’ūūū’ÄĀĀ’`\Zń0+)vĮĮĮĒ’‚ƒ„ž°³“žŒéøø¾/ ~‡ƒöńńņ’żöńżüÜĶĆūĮ§ƒü·˜cüŗ`üæ”_üæ”_ü½`ü·˜cū棃üŁČĆżóģżųųų’›˜—’qqr’€‚ž°²“ž‹éßåå(€Ÿœ›śųųų’żéŽŽżæ£wü¼ž_üĢ­düÖµdüŪŗdüŽædüŽædüŪŗdüÖ·düĪ­düæ”_śŗžwżāŌŽžżū’“²²žƒž‡‰‰čßßå( [“Žõööõ’üįŅæü»ŸbüĪ²düŲŗdüćĀdņčĆgĮąœ„śņŃdüōŃdüņĪdüķĢdüåÄdüŪŗdüĢ­dü¶—büŁĘæžüś’ئ„’ICC‰$da`ŚģģķżüęŁĆüĀ¦\łÜĀałēĒaśļĻ`łōŅa±ą”iÉS’¹ä †łüßałüÜałłŚałōÕałģĶałāĄaüĻ°aü·˜\üÜĢĆżżüś~zyö000 !„ĖŹŹżõķęŠüæ„XüčÕ[łń×ZłöŚYłłßXłüßW”×›`ĘN’ƒŠp±łłēWłłēWłüåWłüßWłłŁWłšŠWłāĮWłŠ°Wł³—XüėįĪćāāōOKI¤tqpŚēåćēśŅ½lüźÕUäńŃ^Šn®œŁ‹ˆüüéQūūåNkČ[ĘYĆI÷qĖb»ūūīNūūīNūūėNūūčNūūįNųųŲNųīĪNĮŠgZ²5ņ¢»n­ēóąéŒ‹ś111Mµ““ż­Ė˜és“I”fČZćpŹdĆbÅVŻXĆKó‚Ńv•ūūģESĄDīnÉ_«PĄBöųųšFūūšEūūšEųųéF¶ā¤b]ÄJĪZĀC×Y½>ŚZ¶9×M«&÷©Ō“ņĪĶĢóC>¾½¾ś Ēģ-'ó±suś·::šF&%śńųųūFvvż}==üŃvvü_ūĻü’•6ē­ś*®$‡,,ł]::ųF!!łzų÷œ÷ŽgSÖ%A5/+°°°Ła\Zˆ·¶¶ā10©īńć|mā#ĘĘģ(PPżžßßüQppū‹HHś·łłł.ųųų#ddö.³T­ ÖæßÆźźź źźŌ źźŌ źźŌ źŌæ źæŖ åĢ² [ŗ¹¹ś4//6–””z¤¤„į²™ łłü]YYüšūzZZśøQQś­śśś1łłł)ōōōŌŌŌŪŪŪŪŪŪŪŪŪŪŪŪŪŪ¶ŪŪ¶ŪŪ¶ŌŖŖ& ‡‡‡µ’ĢÅĆĆēSSUŠłłł,||ūĄuuś¬ZZūÄxxżśśś4łłł+ųųų#īīī@@@##%`ĄææųIBBI‘ŽŽQ¼»¼ū&&)Qiiüh``üź[[ūŌƒƒūśśś9śśś0ųųų'öööķķķ9®®°į~|ز±±‰©©ŖńJµüūIIūņ’’ūƒūūū@śśś6łłł,ųųų$õõõńńńĢĢĢ6——™Ō”ŸŸ×¼¹¹‘ÆÆ°÷224vßØ÷żXXū=łłł,śśś3łłł/ųųų'öööšššŌŌŌZ¢¢£āا¦×* ­««jČĒČörrwĖiƒ  FffgÆĄĄĮśš˜•© ĒÅÅ„ĮĄĮūŽŽÜ\\]¤669u""%a##&_000pUUX™††‰Š»ŗ»ū¹··ĪpmiKhhh¼¹¹nĖÉȱÉĘĘŲÄĆÄėĆĀĆģĘÄÅąĀĀĀĮÆ­­‰idd8’’’š’’’ą’’’Ą’’’€’’’’’’’ąž’ü?ų?į’ą’ćļš’ĒĒų’ĒüœĒų€GĄ—?+—?9ö?1ņž?1ųü?±ˆ?… ć?=’Ż?žĢž’īü’ę?ł’ņó’üĒ’ž’’Ą’PKā =B' 5wś ś *spykeutils-0.2.1/_static/comment-close.png‰PNG  IHDRó’a OiCCPPhotoshop ICC profilexŚSgTSé=÷ŽōBKˆ€”KoR RB‹€‘&*! Jˆ!”ŁQĮEEČ ˆŽŽ€ŒQ, Š Ųä!¢Žƒ£ˆŠŹūį{£kÖ¼÷ęĶžµ×>ē¬ó³ĻĄ –H3Q5€ ©BąƒĒÄĘįä.@ $p³d!sż#ų~<<+"Ą¾xÓ ĄM›Ą0‡’źB™\€„Ąt‘8K€@zŽB¦@F€˜&S `ĖcbćP-`'ęӀų™{[”! ‘ eˆDh;¬ĻVŠEX0fKÄ9Ų-0IWfH°·ĄĪ ² 0Qˆ…){`Č##x„™FņW<ń+®ē*x™²<¹$9E[-qWW.(ĪI+6aaš@.Āy™24ąóĢ ‘ąƒóżxĪ®ĪĪ6Ž¶_-źæ’"bbćžåĻ«p@įt~Ńž,/³€;€mž¢%īh^  u÷‹f²@µ éŚWópų~<ß5°j>{‘-Ø]cöK'XtĄā÷ņ»oĮŌ(€hƒįĻw’ļ?żG %€fI’q^D$.TŹ³?ĒD *°AōĮ,ĄĮÜĮ ü`6„B$ÄĀBB d€r`)¬‚B(†Ķ°*`/Ō@4ĄQh†“p.ĀUø=pśažĮ(¼ AČa!ŚˆbŠX#Ž™…ų!ĮH‹$ ɈQ"K‘5H1RŠT UHņ=r9‡\Fŗ‘;Č2‚ü†¼G1”²Q=Ō µC¹Ø7„F¢ Šdt1š ›Šr“=Œ6”ēŠ«hŚ>CĒ0Ąč3Äl0.ĘĆB±8, “cĖ±"¬ «Ę°V¬»‰õcĻ±wEĄ 6wB aAHXLXNŲHØ $4Ś 7 „QĀ'"“ØK“&ŗłÄb21‡XH,#֏/{ˆCÄ7$‰C2'¹I±¤TŅŅFŅnR#é,©›4H#“ÉŚdk²9”, +ȅääĆä3ää!ņ[ b@q¤ųSā(RŹjJåå4åe˜2AU£šRŻØ”T5ZB­”¶RÆQ‡Ø4uš9ĶƒIK„­¢•Óhh÷iÆčtŗŻ•N—ŠWŅĖéGč—čōw †ƒĒˆg(›gwƘL¦ӋĒT071ė˜ē™™oUX*¶*|‘Ź •J•&•*/T©Ŗ¦ŖŽŖ UóUĖT©^S}®FU3Sć© Ō–«UŖPėSSg©;؇ŖgØoT?¤~Yż‰YĆLĆOC¤Q ±_ć¼Ę c³x,!k «†u5Ä&±ĶŁ|v*»˜ż»‹=Ŗ©”9C3J3W³Ró”f?ć˜qųœtN ē(§—ó~ŠŽļ)ā)¦4L¹1e\kŖ–—–X«H«Q«Gė½6®ķ§¦½E»YūAĒJ'\'GgĪēSŁSŻ§ §M=:õ®.Ŗk„”»Dwæn§ī˜ž¾^€žLo§Žy½ēś}/żTżmś§õG X³ $Ū Ī<Å5qo</ĒŪńQC]Ć@C„a•a—į„‘¹Ń<£ÕFFŒiĘ\ć$ćmĘmĘ£&&!&KMźMīšRM¹¦)¦;L;LĒĶĢĶ¢Ķ֙5›=1×2ē›ē›×›ß·`ZxZ,¶Ø¶øeI²äZ¦Yī¶¼n…Z9Y„XUZ]³F­­%Ö»­»§§¹N“N«žÖgĆ°ń¶É¶©·°åŲŪ®¶m¶}agbg·Å®Ćī“½“}ŗ}ż= ‡Ł«Z~s“r:V:ŽšĪœī?}Åō–é/gXĻĻŲ3ć¶Ė)ÄiS›ÓGgg¹sƒóˆ‹‰K‚Ė.—>.›ĘŻČ½äJtõq]įzŅõ›³›ĀķØŪÆī6īiī‡ÜŸĢ4Ÿ)žY3sŠĆČCąQåŃ? Ÿ•0k߬~OCOgµē#/c/‘W­×°·„wŖ÷aļ>ö>rŸć>ć<7Ž2ŽY_Ģ7Ą·Č·ĖOĆož_…ßC#’d’z’ѧ€%g‰A[ūųz|!æŽ?:Ūeö²ŁķAŒ ¹AA‚­‚åĮ­!hČģ­!÷ē˜Ī‘Īi…P~čÖŠaęa‹Ć~ '…‡…W†?ŽpˆXŃ1—5wŃÜCsßDśD–DŽ›g1O9Æ-J5*>Ŗ.j<Ś7ŗ4ŗ?Ę.fYĢÕXXIlK9.*®6nl¾ßüķó‡āā ć{˜/Č]py”ĪĀō…§©.,:–@LˆN8”šA*ØŒ%ņw%Ž yĀĀg"/Ń6шŲC\*NņH*Mz’ģ‘¼5y$Å3„,幄'©¼L LŻ›:žšv m2=:½1ƒ’‘qBŖ!M“¶gźgęfvĖ¬e…²žÅn‹·/•Ék³¬Y- ¶B¦čTZ(×*²geWfæĶ‰Ź9–«ž+ĶķĢ³ŹŪ7œļŸ’ķĀį’¶„†KW-Xę½¬j9²‰Š®Ū—Ų(Üxå‡oŹæ™Ü”“©«Ä¹dĻfŅféęŽ-ž[–Ŗ—ę—n ŁŚ“ ßV“ķõöEŪ/—Ķ(Ū»ƒ¶C¹£æ<ø¼e§ÉĪĶ;?T¤TōTśT6īŅŻµa×ųnŃī{¼ö4ģÕŪ[¼÷ż>ɾŪUUMÕfÕeūIū³÷?®‰Ŗéų–ūm]­NmqķĒŅż#¶×¹ŌÕŅ=TRÖ+ėGĒ¾žļw- 6 UœĘā#pDyäé÷ ß÷ :ŚvŒ{¬įÓvg/jBšņšF›Sšū[b[ŗOĢ>ŃÖźŽzüGŪœ499ā?rżéü§CĻdĻ&žž¢žĖ®/~ųÕė×Īјє—ņ—“æm|„żźĄėÆŪĘĀĘ¾Éx31^ōVūķĮwÜwļ£ßOä| (’hł±õSŠ§ū“““’˜óüc3-ŪbKGD’’’ ½§“ pHYs  šœtIMEŚ!ā›ČŻ,IDAT8Ėe’_HuĒ?Ļļ}ßsŽž3ĶyņĖ•¶¦‹U2MvQÉ֊FŌE¬.ŠŃĶĆł­ÄŠbŃE$DD­‹ĖZF5b@QĢ"š:2§›š¦¾ļū{Ÿn.źsõåēū<_ų yī?ō½m÷²żč·wV™ź@t£R`}Z ķÄŠ_£# _=œį_@ŻĖż ßw^óRė®·•%6gC-Ī­(K>ä| $„Éļ{Æ}