diff --git a/docs/user/README.txt b/docs/user/README.txt index 352fc860751cb2f90d6f7c19c34d64e361cd080a..ceae4220ed0e9647be6fc87255ae47840f5e4c04 100644 --- a/docs/user/README.txt +++ b/docs/user/README.txt @@ -1,36 +1,30 @@ This directory contains MOOSE user documentation. The documentation is encoded in the Markdown format. Each of the Markdown -files is converted here to a corresponding HTML file for viewing in a browser, -and can be converted to many other formats. To learn more about the Markdown +files is converted to corresponding reStructuredText (rst) file by running "python markdown2rst.py" which creates rst file into corresponding directory. +To convert rst files, one needs to go to respective directory e.g Rdesigneur run "make html" in terminal, which +creates corresponding HTML file for viewing in a browser in "_build/html" directory. +To learn more about the Markdown format itself, go to the other 'markdown' directory one level up, in the -main 'Docs' directory. +main 'docs' directory. Here are some of the important files: - - index.html: - If you just want to read the documentation, open this file in - your browser, and start exploring! This file links to all the - other user documents. All the user documents are listed below as - well, as *.markdown files. - - markdown/pymoose2walkthrough.markdown: - "Getting started with python scripting for MOOSE" - markdown/MooseGuiDocs.markdown: "MOOSEGUI: Graphical interface for MOOSE" - - markdown/Nkit2Documentation.markdown: - "Neuronal simulations in MOOSEGUI". THIS IS CURRENTLY NOT INCLUDED - markdown/Kkit12Documentation.markdown: "Kinetikit 12: Interface for chemical kinetic models in MOOSEGUI" - markdown/RdesigneurDocumentation:markdown: "Reaction Diffusion and Electrical SIGnaling in NEURons):Interface to the multiscale modeling capabilities in MOOSE" - - markdown/moosebuiltindocs.markdown: - "MOOSE class and function documentation" - This file is auto-generated by the 'py/digestbuiltindocs.py' - Python script (see below). - - py/digestbuiltindocs.py: This Python script compiles all the inline - documentation for MOOSE classes and functions, as visible in the - MOOSE Python module, into a Markdown text file. THIS IS CURRENTLY - BROKEN. + - markdown/Nkit2Documentation.markdown: + "Neuronal simulations in MOOSEGUI". THIS IS CURRENTLY NOT INCLUDED + + - snippets/snippets.rst: + A diverse collection of snippets: (mostly) short code examples illustrating different features of MOOSE + - tutorials/tutorials.rst: + A set of tutorials for teaching a range of topics, including integrate-and-fire networks, chemical bistables, and oscillators. + Has stand-alone graphics and the Python scripts are meant to tinker with. + - py/create_rest_doc.py: This Python script compiles all the inline documentation for MOOSE classes and functions, as visible in the MOOSE Python module, into a reST text file. diff --git a/docs/user/markdown/moosebuiltindocs.markdown b/docs/user/markdown/moosebuiltindocs.markdown deleted file mode 100644 index 50b2eb3639c62c2db07f876c3edc40d18193aa13..0000000000000000000000000000000000000000 --- a/docs/user/markdown/moosebuiltindocs.markdown +++ /dev/null @@ -1,7862 +0,0 @@ -% Documentation for all MOOSE classes and functions -% As visible in the Python module -% Auto-generated on January 07, 2013 - -# Index for MOOSE Classes ----- ---- ---- ---- ---- ---- -**A** [`Enz`](#enz) [`Interpol2D`](#interpol2d) [`NMDAChan`](#nmdachan) [`Species`](#species) [`VectorTable`](#vectortable) -[`Adaptor`](#adaptor) [`EnzBase`](#enzbase) [`IntFire`](#intfire) **O** [`SpherePanel`](#spherepanel) **Z** -[`Annotator`](#annotator) **F** [`IzhikevichNrn`](#izhikevichnrn) [`OneToAllMsg`](#onetoallmsg) [`SpikeGen`](#spikegen) [`ZBufPool`](#zbufpool) -[`Arith`](#arith) [`Finfo`](#finfo) **L** [`OneToOneMsg`](#onetoonemsg) [`Stats`](#stats) [`ZEnz`](#zenz) -**B** [`FuncBase`](#funcbase) [`LeakyIaF`](#leakyiaf) **P** [`StimulusTable`](#stimulustable) [`ZFuncPool`](#zfuncpool) -[`Boundary`](#boundary) [`FuncPool`](#funcpool) **M** [`Panel`](#panel) [`Stoich`](#stoich) [`ZMMenz`](#zmmenz) -[`BufPool`](#bufpool) **G** [`MarkovChannel`](#markovchannel) [`PIDController`](#pidcontroller) [`StoichCore`](#stoichcore) [`ZombieBufPool`](#zombiebufpool) -**C** [`Geometry`](#geometry) [`MarkovGslSolver`](#markovgslsolver) [`Pool`](#pool) [`StoichPools`](#stoichpools) [`ZombieCaConc`](#zombiecaconc) -[`CaConc`](#caconc) [`GHK`](#ghk) [`MarkovRateTable`](#markovratetable) [`PoolBase`](#poolbase) [`SumFunc`](#sumfunc) [`ZombieCompartment`](#zombiecompartment) -[`ChanBase`](#chanbase) [`Group`](#group) [`MarkovSolver`](#markovsolver) [`Port`](#port) [`Surface`](#surface) [`ZombieEnz`](#zombieenz) -[`ChemMesh`](#chemmesh) [`GslIntegrator`](#gslintegrator) [`MarkovSolverBase`](#markovsolverbase) [`PulseGen`](#pulsegen) [`SymCompartment`](#symcompartment) [`ZombieFuncPool`](#zombiefuncpool) -[`Cinfo`](#cinfo) [`GslStoich`](#gslstoich) [`MathFunc`](#mathfunc) **R** [`Synapse`](#synapse) [`ZombieHHChannel`](#zombiehhchannel) -[`Clock`](#clock) [`GssaStoich`](#gssastoich) [`Mdouble`](#mdouble) [`RC`](#rc) [`SynBase`](#synbase) [`ZombieMMenz`](#zombiemmenz) -[`Compartment`](#compartment) **H** [`MeshEntry`](#meshentry) [`Reac`](#reac) [`SynChan`](#synchan) [`ZombiePool`](#zombiepool) -[`CplxEnzBase`](#cplxenzbase) [`HDF5DataWriter`](#hdf5datawriter) [`MgBlock`](#mgblock) [`ReacBase`](#reacbase) [`SynChanBase`](#synchanbase) [`ZombieReac`](#zombiereac) -[`CubeMesh`](#cubemesh) [`HDF5WriterBase`](#hdf5writerbase) [`MMenz`](#mmenz) [`RectPanel`](#rectpanel) **T** [`ZombieSumFunc`](#zombiesumfunc) -[`CylMesh`](#cylmesh) [`HemispherePanel`](#hemispherepanel) [`Msg`](#msg) [`ReduceMsg`](#reducemsg) [`Table`](#table) [`ZPool`](#zpool) -[`CylPanel`](#cylpanel) [`HHChannel`](#hhchannel) [`Mstring`](#mstring) **S** [`TableBase`](#tablebase) [`ZReac`](#zreac) -**D** [`HHChannel2D`](#hhchannel2d) **N** [`Shell`](#shell) [`TableEntry`](#tableentry) -[`DiagonalMsg`](#diagonalmsg) [`HHGate`](#hhgate) [`Nernst`](#nernst) [`SimManager`](#simmanager) [`testSched`](#testsched) -[`DiffAmp`](#diffamp) [`HHGate2D`](#hhgate2d) [`NeuroMesh`](#neuromesh) [`SingleMsg`](#singlemsg) [`Tick`](#tick) -[`DiskPanel`](#diskpanel) [`HSolve`](#hsolve) [`Neuron`](#neuron) [`SolverJunction`](#solverjunction) [`TriPanel`](#tripanel) -**E** **I** [`Neutral`](#neutral) [`SparseMsg`](#sparsemsg) **V** ----- ---- ---- ---- ---- ---- - - -# Index for MOOSE Functions ----- ---- ---- ---- ---- ---- -**C** [`element`](#element) [`getmoosedoc`](#getmoosedoc) [`move`](#move) [`saveModel`](#savemodel) [`stop`](#stop) -[`ce`](#ce) [`exists`](#exists) **I** **P** [`seed`](#seed) [`syncDataHandler`](#syncdatahandler) -[`connect`](#connect) **G** [`isRunning`](#isrunning) [`pwe`](#pwe) [`setClock`](#setclock) **U** -[`copy`](#copy) [`getCwe`](#getcwe) **L** **Q** [`setCwe`](#setcwe) [`useClock`](#useclock) -**D** [`getField`](#getfield) [`le`](#le) [`quit`](#quit) [`showfield`](#showfield) **W** -[`delete`](#delete) [`getFieldDict`](#getfielddict) [`listmsg`](#listmsg) **R** [`showfields`](#showfields) [`wildcardFind`](#wildcardfind) -[`doc`](#doc) [`getfielddoc`](#getfielddoc) [`loadModel`](#loadmodel) [`reinit`](#reinit) [`showmsg`](#showmsg) [`writeSBML`](#writesbml) -**E** [`getFieldNames`](#getfieldnames) **M** **S** [`start`](#start) ----- ---- ---- ---- ---- ---- - -# MOOSE Classes - - -## Adaptor -**Author**: Upinder S. Bhalla, 2008, NCBS - -**Description**: Averages and rescales values to couple different kinds of simulation - - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`inputOffset`** `double` Offset to apply to input message, before scaling -**`outputOffset`** `double` Offset to apply at output, after scaling -**`scale`** `double` Scaling factor to apply to input -**`output`** `double` This is the linearly transformed output. - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`outputSrc`** `double` Sends the output value every timestep. -**`requestInput`** `void` Sends out the request. Issued from the process call. - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`input`** `double` Input message to the adaptor. If multiple inputs are received, the system averages the inputs. -**`process`** `void` Handles 'process' call -**`reinit`** `void` Handles 'reinit' call -**`handleInput`** `double` Handle the returned value. - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`proc`** `void` This is a shared message to receive Process message from the scheduler. -**`inputRequest`** `void` This is a shared message to request and handle value messages from fields. - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## Annotator - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`x`** `double` x field. Typically display coordinate x -**`y`** `double` y field. Typically display coordinate y -**`z`** `double` z field. Typically display coordinate z -**`notes`** `string` A string to hold some text notes about parent object -**`color`** `string` A string to hold a text string specifying display color.Can be a regular English color name, or an rgb code rrrgggbbb -**`textColor`** `string` A string to hold a text string specifying color for text labelthat might be on the display for this object.Can be a regular English color name, or an rgb code rrrgggbbb -**`icon`** `string` A string to specify icon to use for display - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) - - -#### Shared message fields - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## Arith - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`function`** `string` Arithmetic function to perform on inputs. -**`outputValue`** `double` Value of output as computed last timestep. -**`arg1Value`** `double` Value of arg1 as computed last timestep. - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`output`** `double` Sends out the computed value - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`arg1`** `double` Handles argument 1. This just assigns it -**`arg2`** `double` Handles argument 2. This just assigns it -**`arg3`** `double` Handles argument 3. This sums in each input, and clears each clock tick. -**`arg1x2`** `double,double` Store the product of the two arguments in output_ -**`process`** `void` Handles process call -**`reinit`** `void` Handles reinit call - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`proc`** `void` Shared message for process and reinit - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. -**`anyValue`** `unsigned int,double` Value of any of the internal fields, output, arg1, arg2, arg3,as specified by the index argument from 0 to 3. - - -## Boundary - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`reflectivity`** `double` What happens to a molecule hitting it: bounces, absorbed, diffused? - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`toAdjacent`** `void` Dummy message going to adjacent compartment. -**`toInside`** `void` Dummy message going to surrounded compartment. - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`adjacent`** `void` Dummy message coming from adjacent compartment to current oneImplies that compts are peers: do not surround each other -**`outside`** `void` Dummy message coming from surrounding compartment to this one.Implies that the originating compartment surrounds this one - - -#### Shared message fields - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## BufPool - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`n`** `double` Number of molecules in pool -**`nInit`** `double` Initial value of number of molecules in pool -**`diffConst`** `double` Diffusion constant of molecule -**`conc`** `double` Concentration of molecules in this pool -**`concInit`** `double` Initial value of molecular concentration in pool -**`size`** `double` Size of compartment. Units are SI. Utility field, the actual size info is stored on a volume mesh entry in the parent compartment.This is hooked up by a message. If the message isn'tavailable size is just taken as 1 -**`speciesId`** `unsigned int` Species identifier for this mol pool. Eventually link to ontology. - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`nOut`** `double` Sends out # of molecules in pool on each timestep -**`requestMolWt`** `void` Requests Species object for mol wt -**`requestSize`** `double` Requests Size of pool from matching mesh entry - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`group`** `void` Handle for grouping. Doesn't do anything. -**`reacDest`** `double,double` Handles reaction input -**`process`** `void` Handles process call -**`reinit`** `void` Handles reinit call -**`handleMolWt`** `double` Separate finfo to assign molWt, and consequently diffusion const.Should only be used in SharedMsg with species. -**`remesh`** `double,unsigned int,unsigned int,vector<unsigned int>,vector<double>` Handle commands to remesh the pool. This may involve changing the number of pool entries, as well as changing their volumes -**`increment`** `double` Increments mol numbers by specified amount. Can be +ve or -ve -**`decrement`** `double` Decrements mol numbers by specified amount. Can be +ve or -ve -**`process`** `void` Handles process call -**`reinit`** `void` Handles reinit call - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`reac`** `void` Connects to reaction -**`proc`** `void` Shared message for process and reinit -**`species`** `void` Shared message for connecting to species objects -**`mesh`** `void` Shared message for dealing with mesh operations -**`proc`** `void` Shared message for process and reinit - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## CaConc - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`Ca`** `double` Calcium concentration. -**`CaBasal`** `double` Basal Calcium concentration. -**`Ca_base`** `double` Basal Calcium concentration, synonym for CaBasal -**`tau`** `double` Settling time for Ca concentration -**`B`** `double` Volume scaling factor -**`thick`** `double` Thickness of Ca shell. -**`ceiling`** `double` Ceiling value for Ca concentration. If Ca > ceiling, Ca = ceiling. If ceiling <= 0.0, there is no upper limit on Ca concentration value. -**`floor`** `double` Floor value for Ca concentration. If Ca < floor, Ca = floor - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`concOut`** `double` Concentration of Ca in pool - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`process`** `void` Handles process call -**`reinit`** `void` Handles reinit call -**`current`** `double` Calcium Ion current, due to be converted to conc. -**`currentFraction`** `double,double` Fraction of total Ion current, that is carried by Ca2+. -**`increase`** `double` Any input current that increases the concentration. -**`decrease`** `double` Any input current that decreases the concentration. -**`basal`** `double` Synonym for assignment of basal conc. - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`proc`** `void` Shared message to receive Process message from scheduler - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## ChanBase - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`Gbar`** `double` Maximal channel conductance -**`Ek`** `double` Reversal potential of channel -**`Gk`** `double` Channel conductance variable -**`Ik`** `double` Channel current variable - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`channelOut`** `double,double` Sends channel variables Gk and Ek to compartment -**`permeability`** `double` Conductance term going out to GHK object -**`IkOut`** `double` Channel current. This message typically goes to concenobjects that keep track of ion concentration. - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`Vm`** `double` Handles Vm message coming in from compartment -**`Vm`** `double` Handles Vm message coming in from compartment - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`channel`** `void` This is a shared message to couple channel to compartment. The first entry is a MsgSrc to send Gk and Ek to the compartment The second entry is a MsgDest for Vm from the compartment. -**`ghk`** `void` Message to Goldman-Hodgkin-Katz object - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## ChemMesh - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`size`** `double` Size of entire chemical domain.Assigning this assumes that the geometry is that of the default mesh, which may not be what you want. If so, usea more specific mesh assignment function. -**`numDimensions`** `unsigned int` Number of spatial dimensions of this compartment. Usually 3 or 2 - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`meshSplit`** `double,vector<double>,vector<unsigned int>,vector< vector<unsigned int> >,vector< vector<unsigned int> >` Defines how meshEntries communicate between nodes.Args: oldVol, volListOfAllEntries, localEntryList, outgoingDiffusion[node#][entry#], incomingDiffusion[node#][entry#]This message is meant to go to the SimManager and Stoich. -**`meshStats`** `unsigned int,vector<double>` Basic statistics for mesh: Total # of entries, and a vector ofunique volumes of voxels - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`buildDefaultMesh`** `double,unsigned int` Tells ChemMesh derived class to build a default mesh with thespecified size and number of meshEntries. -**`handleRequestMeshStats`** `void` Handles request from SimManager for mesh stats -**`handleNodeInfo`** `unsigned int,unsigned int` Tells ChemMesh how many nodes and threads per node it is allowed to use. Triggers a return meshSplit message. - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`nodeMeshing`** `void` Connects to SimManager to coordinate meshing with paralleldecomposition and with the Stoich - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## Cinfo -**Author**: Upi Bhalla - -**Description**: Class information object. - - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`docs`** `string` Documentation -**`baseClass`** `string` Name of base class - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) - - -#### Shared message fields - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## Clock - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`runTime`** `double` Duration to run the simulation -**`currentTime`** `double` Current simulation time -**`nsteps`** `unsigned int` Number of steps to advance the simulation, in units of the smallest timestep on the clock ticks -**`numTicks`** `unsigned int` Number of clock ticks -**`currentStep`** `unsigned int` Current simulation step -**`dts`** `vector<double>` Utility function returning the dt (timestep) of all ticks. -**`isRunning`** `bool` Utility function to report if simulation is in progress. - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`childTick`** `void` Parent of Tick element -**`finished`** `void` Signal for completion of run -**`ack`** `unsigned int,unsigned int` Acknowledgement signal for receipt/completion of function.Goes back to Shell on master node - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`start`** `double` Sets off the simulation for the specified duration -**`step`** `unsigned int` Sets off the simulation for the specified # of steps -**`stop`** `void` Halts the simulation, with option to restart seamlessly -**`setupTick`** `unsigned int,double` Sets up a specific clock tick: args tick#, dt -**`reinit`** `void` Zeroes out all ticks, starts at t = 0 - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`clockControl`** `void` Controls all scheduling aspects of Clock, usually from Shell - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## Compartment -**Author**: Upi Bhalla - -**Description**: Compartment object, for branching neuron models. - - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`Vm`** `double` membrane potential -**`Cm`** `double` Membrane capacitance -**`Em`** `double` Resting membrane potential -**`Im`** `double` Current going through membrane -**`inject`** `double` Current injection to deliver into compartment -**`initVm`** `double` Initial value for membrane potential -**`Rm`** `double` Membrane resistance -**`Ra`** `double` Axial resistance of compartment -**`diameter`** `double` Diameter of compartment -**`length`** `double` Length of compartment -**`x0`** `double` X coordinate of start of compartment -**`y0`** `double` Y coordinate of start of compartment -**`z0`** `double` Z coordinate of start of compartment -**`x`** `double` x coordinate of end of compartment -**`y`** `double` y coordinate of end of compartment -**`z`** `double` z coordinate of end of compartment - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`VmOut`** `double` Sends out Vm value of compartment on each timestep -**`axialOut`** `double` Sends out Vm value of compartment to adjacent compartments,on each timestep -**`raxialOut`** `double,double` Sends out Raxial information on each timestep, fields are Ra and Vm - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`injectMsg`** `double` The injectMsg corresponds to the INJECT message in the GENESIS compartment. Unlike the 'inject' field, any value assigned by handleInject applies only for a single timestep.So it needs to be updated every dt for a steady (or varying)injection current -**`randInject`** `double,double` Sends a random injection current to the compartment. Must beupdated each timestep.Arguments to randInject are probability and current. -**`injectMsg`** `double` The injectMsg corresponds to the INJECT message in the GENESIS compartment. Unlike the 'inject' field, any value assigned by handleInject applies only for a single timestep.So it needs to be updated every dt for a steady (or varying)injection current -**`cable`** `void` Message for organizing compartments into groups, calledcables. Doesn't do anything. -**`process`** `void` Handles 'process' call -**`reinit`** `void` Handles 'reinit' call -**`initProc`** `void` Handles Process call for the 'init' phase of the Compartment calculations. These occur as a separate Tick cycle from the regular proc cycle, and should be called before the proc msg. -**`initReinit`** `void` Handles Reinit call for the 'init' phase of the Compartment calculations. -**`handleChannel`** `double,double` Handles conductance and Reversal potential arguments from Channel -**`handleRaxial`** `double,double` Handles Raxial info: arguments are Ra and Vm. -**`handleAxial`** `double` Handles Axial information. Argument is just Vm. - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`proc`** `void` This is a shared message to receive Process messages from the scheduler objects. The Process should be called _second_ in each clock tick, after the Init message.The first entry in the shared msg is a MsgDest for the Process operation. It has a single argument, ProcInfo, which holds lots of information about current time, thread, dt and so on. The second entry is a MsgDest for the Reinit operation. It also uses ProcInfo. -**`init`** `void` This is a shared message to receive Init messages from the scheduler objects. Its job is to separate the compartmental calculations from the message passing. It doesn't really need to be shared, as it does not use the reinit part, but the scheduler objects expect this form of message for all scheduled output. The first entry is a MsgDest for the Process operation. It has a single argument, ProcInfo, which holds lots of information about current time, thread, dt and so on. The second entry is a dummy MsgDest for the Reinit operation. It also uses ProcInfo. -**`channel`** `void` This is a shared message from a compartment to channels. The first entry is a MsgDest for the info coming from the channel. It expects Gk and Ek from the channel as args. The second entry is a MsgSrc sending Vm -**`axial`** `void` This is a shared message between asymmetric compartments. axial messages (this kind) connect up to raxial messages (defined below). The soma should use raxial messages to connect to the axial message of all the immediately adjacent dendritic compartments.This puts the (low) somatic resistance in series with these dendrites. Dendrites should then use raxial messages toconnect on to more distal dendrites. In other words, raxial messages should face outward from the soma. The first entry is a MsgSrc sending Vm to the axialFuncof the target compartment. The second entry is a MsgDest for the info coming from the other compt. It expects Ra and Vm from the other compt as args. Note that the message is named after the source type. -**`raxial`** `void` This is a raxial shared message between asymmetric compartments. The first entry is a MsgDest for the info coming from the other compt. It expects Vm from the other compt as an arg. The second is a MsgSrc sending Ra and Vm to the raxialFunc of the target compartment. - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## CplxEnzBase -**Author**: Upi Bhalla - -**Description**:: Base class for mass-action enzymes in which there is an explicit pool for the enzyme-substrate complex. It models the reaction: E + S <===> E.S ----> E + P - - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`Km`** `double` Michaelis-Menten constant in SI conc units (milliMolar) -**`numKm`** `double` Michaelis-Menten constant in number units, volume dependent -**`kcat`** `double` Forward rate constant for enzyme, units 1/sec -**`numSubstrates`** `unsigned int` Number of substrates in this MM reaction. Usually 1.Does not include the enzyme itself -**`k1`** `double` Forward reaction from enz + sub to complex -**`k2`** `double` Reverse reaction from complex to enz + sub -**`k3`** `double` Forward rate constant from complex to product + enz -**`ratio`** `double` Ratio of k2/k3 -**`concK1`** `double` K1 expressed in concentration (1/millimolar.sec) units - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`toSub`** `double,double` Sends out increment of molecules on product each timestep -**`toPrd`** `double,double` Sends out increment of molecules on product each timestep -**`toEnz`** `double,double` Sends out increment of molecules on product each timestep -**`toCplx`** `double,double` Sends out increment of molecules on product each timestep - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`enzDest`** `double` Handles # of molecules of Enzyme -**`subDest`** `double` Handles # of molecules of substrate -**`prdDest`** `double` Handles # of molecules of product. Dummy. -**`process`** `void` Handles process call -**`reinit`** `void` Handles reinit call -**`remesh`** `void` Tells the MMEnz to recompute its numKm after remeshing -**`enzDest`** `double` Handles # of molecules of Enzyme -**`cplxDest`** `double` Handles # of molecules of enz-sub complex - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`sub`** `void` Connects to substrate molecule -**`prd`** `void` Connects to product molecule -**`proc`** `void` Shared message for process and reinit -**`enz`** `void` Connects to enzyme pool -**`cplx`** `void` Connects to enz-sub complex pool - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## CubeMesh - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`size`** `double` Size of entire chemical domain.Assigning this assumes that the geometry is that of the default mesh, which may not be what you want. If so, usea more specific mesh assignment function. -**`numDimensions`** `unsigned int` Number of spatial dimensions of this compartment. Usually 3 or 2 -**`isToroid`** `bool` Flag. True when the mesh should be toroidal, that is,when going beyond the right face brings us around to theleft-most mesh entry, and so on. If we have nx, ny, nzentries, this rule means that the coordinate (x, ny, z)will map onto (x, 0, z). Similarly,(-1, y, z) -> (nx-1, y, z)Default is false -**`preserveNumEntries`** `bool` Flag. When it is true, the numbers nx, ny, nz remainunchanged when x0, x1, y0, y1, z0, z1 are altered. Thusdx, dy, dz would change instead. When it is false, thendx, dy, dz remain the same and nx, ny, nz are altered.Default is true -**`x0`** `double` X coord of one end -**`y0`** `double` Y coord of one end -**`z0`** `double` Z coord of one end -**`x1`** `double` X coord of other end -**`y1`** `double` Y coord of other end -**`z1`** `double` Z coord of other end -**`dx`** `double` X size for mesh -**`dy`** `double` Y size for mesh -**`dz`** `double` Z size for mesh -**`nx`** `unsigned int` Number of subdivisions in mesh in X -**`ny`** `unsigned int` Number of subdivisions in mesh in Y -**`nz`** `unsigned int` Number of subdivisions in mesh in Z -**`coords`** `vector<double>` Set all the coords of the cuboid at once. Order is:x0 y0 z0 x1 y1 z1 dx dy dz -**`meshToSpace`** `vector<unsigned int>` Array in which each mesh entry stores spatial (cubic) index -**`spaceToMesh`** `vector<unsigned int>` Array in which each space index (obtained by linearizing the xyz coords) specifies which meshIndex is present.In many cases the index will store the EMPTY flag if there isno mesh entry at that spatial location -**`surface`** `vector<unsigned int>` Array specifying surface of arbitrary volume within the CubeMesh. All entries must fall within the cuboid. Each entry of the array is a spatial index obtained by linearizing the ix, iy, iz coordinates within the cuboid. So, each entry == ( iz * ny + iy ) * nx + ixNote that the voxels listed on the surface are WITHIN the volume of the CubeMesh object - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`meshSplit`** `double,vector<double>,vector<unsigned int>,vector< vector<unsigned int> >,vector< vector<unsigned int> >` Defines how meshEntries communicate between nodes.Args: oldVol, volListOfAllEntries, localEntryList, outgoingDiffusion[node#][entry#], incomingDiffusion[node#][entry#]This message is meant to go to the SimManager and Stoich. -**`meshStats`** `unsigned int,vector<double>` Basic statistics for mesh: Total # of entries, and a vector ofunique volumes of voxels - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`buildDefaultMesh`** `double,unsigned int` Tells ChemMesh derived class to build a default mesh with thespecified size and number of meshEntries. -**`handleRequestMeshStats`** `void` Handles request from SimManager for mesh stats -**`handleNodeInfo`** `unsigned int,unsigned int` Tells ChemMesh how many nodes and threads per node it is allowed to use. Triggers a return meshSplit message. -**`parentMsg`** `int` Message from Parent Element(s) - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`nodeMeshing`** `void` Connects to SimManager to coordinate meshing with paralleldecomposition and with the Stoich - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## CylMesh - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`size`** `double` Size of entire chemical domain.Assigning this assumes that the geometry is that of the default mesh, which may not be what you want. If so, usea more specific mesh assignment function. -**`numDimensions`** `unsigned int` Number of spatial dimensions of this compartment. Usually 3 or 2 -**`x0`** `double` x coord of one end -**`y0`** `double` y coord of one end -**`z0`** `double` z coord of one end -**`r0`** `double` Radius of one end -**`x1`** `double` x coord of other end -**`y1`** `double` y coord of other end -**`z1`** `double` z coord of other end -**`r1`** `double` Radius of other end -**`lambda`** `double` Length constant to use for subdivisionsThe system will attempt to subdivide using compartments oflength lambda on average. If the cylinder has different enddiameters r0 and r1, it will scale to smaller lengthsfor the smaller diameter end and vice versa.Once the value is set it will recompute lambda as totLength/numEntries -**`coords`** `vector<double>` All the coords as a single vector: x0 y0 z0 x1 y1 z1 r0 r1 lambda -**`totLength`** `double` Total length of cylinder - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`meshSplit`** `double,vector<double>,vector<unsigned int>,vector< vector<unsigned int> >,vector< vector<unsigned int> >` Defines how meshEntries communicate between nodes.Args: oldVol, volListOfAllEntries, localEntryList, outgoingDiffusion[node#][entry#], incomingDiffusion[node#][entry#]This message is meant to go to the SimManager and Stoich. -**`meshStats`** `unsigned int,vector<double>` Basic statistics for mesh: Total # of entries, and a vector ofunique volumes of voxels - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`buildDefaultMesh`** `double,unsigned int` Tells ChemMesh derived class to build a default mesh with thespecified size and number of meshEntries. -**`handleRequestMeshStats`** `void` Handles request from SimManager for mesh stats -**`handleNodeInfo`** `unsigned int,unsigned int` Tells ChemMesh how many nodes and threads per node it is allowed to use. Triggers a return meshSplit message. - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`nodeMeshing`** `void` Connects to SimManager to coordinate meshing with paralleldecomposition and with the Stoich - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## CylPanel - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`nPts`** `unsigned int` Number of points used by panel to specify geometry -**`nDims`** `unsigned int` Number of Dimensions used by panel to specify geometry -**`numNeighbors`** `unsigned int` Number of Neighbors of panel -**`shapeId`** `unsigned int` Identifier for shape type, as used by Smoldyn -**`coords`** `vector<double>` All the coordinates for the panel. X vector, then Y, then ZZ can be left out for 2-D panels.Z and Y can be left out for 1-D panels. - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`toNeighbor`** `void` Identifies neighbors of the current panel - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`neighbor`** `void` Handles incoming message from neighbor - - -#### Shared message fields - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. -**`x`** `unsigned int,double` x coordinate identified by index -**`y`** `unsigned int,double` y coordinate identified by index -**`z`** `unsigned int,double` z coordinate identified by index - - -## DiagonalMsg - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`e1`** `Id` Id of source Element. -**`e2`** `Id` Id of source Element. -**`srcFieldsOnE1`** `vector<string>` Names of SrcFinfos for messages going from e1 to e2. There arematching entries in the destFieldsOnE2 vector -**`destFieldsOnE2`** `vector<string>` Names of DestFinfos for messages going from e1 to e2. There arematching entries in the srcFieldsOnE1 vector -**`srcFieldsOnE2`** `vector<string>` Names of SrcFinfos for messages going from e2 to e1. There arematching entries in the destFieldsOnE1 vector -**`destFieldsOnE1`** `vector<string>` Names of destFinfos for messages going from e2 to e1. There arematching entries in the srcFieldsOnE2 vector -**`stride`** `int` The stride is the increment to the src DataId that gives thedest DataId. It can be positive or negative, but bounds checkingtakes place and it does not wrap around. - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) - - -#### Shared message fields - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## DiffAmp - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`gain`** `double` Gain of the amplifier. The output of the amplifier is the difference between the totals in plus and minus inputs multiplied by the gain. Defaults to 1 -**`saturation`** `double` Saturation is the bound on the output. If output goes beyond the +/-saturation range, it is truncated to the closer of +saturation and -saturation. Defaults to the maximum double precision floating point number representable on the system. -**`output`** `double` Output of the amplifier, i.e. gain * (plus - minus). - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`outputOut`** `double` Current output level. - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`gainIn`** `double` Destination message to control gain dynamically. -**`plusIn`** `double` Positive input terminal of the amplifier. All the messages connected here are summed up to get total positive input. -**`minusIn`** `double` Negative input terminal of the amplifier. All the messages connected here are summed up to get total positive input. -**`process`** `void` Handles process call, updates internal time stamp. -**`reinit`** `void` Handles reinit call. - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`proc`** `void` This is a shared message to receive Process messages from the scheduler objects.The first entry in the shared msg is a MsgDest for the Process operation. It has a single argument, ProcInfo, which holds lots of information about current time, thread, dt and so on. The second entry is a MsgDest for the Reinit operation. It also uses ProcInfo. - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## DiskPanel - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`nPts`** `unsigned int` Number of points used by panel to specify geometry -**`nDims`** `unsigned int` Number of Dimensions used by panel to specify geometry -**`numNeighbors`** `unsigned int` Number of Neighbors of panel -**`shapeId`** `unsigned int` Identifier for shape type, as used by Smoldyn -**`coords`** `vector<double>` All the coordinates for the panel. X vector, then Y, then ZZ can be left out for 2-D panels.Z and Y can be left out for 1-D panels. - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`toNeighbor`** `void` Identifies neighbors of the current panel - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`neighbor`** `void` Handles incoming message from neighbor - - -#### Shared message fields - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. -**`x`** `unsigned int,double` x coordinate identified by index -**`y`** `unsigned int,double` y coordinate identified by index -**`z`** `unsigned int,double` z coordinate identified by index - - -## Enz - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`Km`** `double` Michaelis-Menten constant in SI conc units (milliMolar) -**`numKm`** `double` Michaelis-Menten constant in number units, volume dependent -**`kcat`** `double` Forward rate constant for enzyme, units 1/sec -**`numSubstrates`** `unsigned int` Number of substrates in this MM reaction. Usually 1.Does not include the enzyme itself -**`k1`** `double` Forward reaction from enz + sub to complex -**`k2`** `double` Reverse reaction from complex to enz + sub -**`k3`** `double` Forward rate constant from complex to product + enz -**`ratio`** `double` Ratio of k2/k3 -**`concK1`** `double` K1 expressed in concentration (1/millimolar.sec) units - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`toSub`** `double,double` Sends out increment of molecules on product each timestep -**`toPrd`** `double,double` Sends out increment of molecules on product each timestep -**`toEnz`** `double,double` Sends out increment of molecules on product each timestep -**`toCplx`** `double,double` Sends out increment of molecules on product each timestep - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`enzDest`** `double` Handles # of molecules of Enzyme -**`subDest`** `double` Handles # of molecules of substrate -**`prdDest`** `double` Handles # of molecules of product. Dummy. -**`process`** `void` Handles process call -**`reinit`** `void` Handles reinit call -**`remesh`** `void` Tells the MMEnz to recompute its numKm after remeshing -**`enzDest`** `double` Handles # of molecules of Enzyme -**`cplxDest`** `double` Handles # of molecules of enz-sub complex - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`sub`** `void` Connects to substrate molecule -**`prd`** `void` Connects to product molecule -**`proc`** `void` Shared message for process and reinit -**`enz`** `void` Connects to enzyme pool -**`cplx`** `void` Connects to enz-sub complex pool - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## EnzBase - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`Km`** `double` Michaelis-Menten constant in SI conc units (milliMolar) -**`numKm`** `double` Michaelis-Menten constant in number units, volume dependent -**`kcat`** `double` Forward rate constant for enzyme, units 1/sec -**`numSubstrates`** `unsigned int` Number of substrates in this MM reaction. Usually 1.Does not include the enzyme itself - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`toSub`** `double,double` Sends out increment of molecules on product each timestep -**`toPrd`** `double,double` Sends out increment of molecules on product each timestep - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`enzDest`** `double` Handles # of molecules of Enzyme -**`subDest`** `double` Handles # of molecules of substrate -**`prdDest`** `double` Handles # of molecules of product. Dummy. -**`process`** `void` Handles process call -**`reinit`** `void` Handles reinit call -**`remesh`** `void` Tells the MMEnz to recompute its numKm after remeshing - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`sub`** `void` Connects to substrate molecule -**`prd`** `void` Connects to product molecule -**`proc`** `void` Shared message for process and reinit - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## Finfo - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`name`** `string` Name of Finfo -**`docs`** `string` Documentation for Finfo -**`type`** `string` RTTI type info for this Finfo -**`src`** `vector<string>` Subsidiary SrcFinfos. Useful for SharedFinfos -**`dest`** `vector<string>` Subsidiary DestFinfos. Useful for SharedFinfos - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) - - -#### Shared message fields - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## FuncBase - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`result`** `double` Outcome of function computation - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`output`** `double` Sends out sum on each timestep - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`input`** `double` Handles input values. This generic message works only in cases where the inputs are commutative, so ordering does not matter. In due course will implement a synapse type extendable, identified system of inputs so that arbitrary numbers of inputs can be unambiguaously defined. -**`process`** `void` Handles process call -**`reinit`** `void` Handles reinit call - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`proc`** `void` Shared message for process and reinit - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## FuncPool - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`n`** `double` Number of molecules in pool -**`nInit`** `double` Initial value of number of molecules in pool -**`diffConst`** `double` Diffusion constant of molecule -**`conc`** `double` Concentration of molecules in this pool -**`concInit`** `double` Initial value of molecular concentration in pool -**`size`** `double` Size of compartment. Units are SI. Utility field, the actual size info is stored on a volume mesh entry in the parent compartment.This is hooked up by a message. If the message isn'tavailable size is just taken as 1 -**`speciesId`** `unsigned int` Species identifier for this mol pool. Eventually link to ontology. - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`nOut`** `double` Sends out # of molecules in pool on each timestep -**`requestMolWt`** `void` Requests Species object for mol wt -**`requestSize`** `double` Requests Size of pool from matching mesh entry - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`group`** `void` Handle for grouping. Doesn't do anything. -**`reacDest`** `double,double` Handles reaction input -**`process`** `void` Handles process call -**`reinit`** `void` Handles reinit call -**`handleMolWt`** `double` Separate finfo to assign molWt, and consequently diffusion const.Should only be used in SharedMsg with species. -**`remesh`** `double,unsigned int,unsigned int,vector<unsigned int>,vector<double>` Handle commands to remesh the pool. This may involve changing the number of pool entries, as well as changing their volumes -**`increment`** `double` Increments mol numbers by specified amount. Can be +ve or -ve -**`decrement`** `double` Decrements mol numbers by specified amount. Can be +ve or -ve -**`input`** `double` Handles input to control value of n_ - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`reac`** `void` Connects to reaction -**`proc`** `void` Shared message for process and reinit -**`species`** `void` Shared message for connecting to species objects -**`mesh`** `void` Shared message for dealing with mesh operations - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## GHK - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`Ik`** `double` Membrane current -**`Gk`** `double` Conductance -**`Ek`** `double` Reversal Potential -**`T`** `double` Temperature of system -**`p`** `double` Permeability of channel -**`Vm`** `double` Membrane potential -**`Cin`** `double` Internal concentration -**`Cout`** `double` External ion concentration -**`valency`** `double` Valence of ion - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`channelOut`** `double,double` Sends channel variables Gk and Ek to compartment -**`VmOut`** `double` Relay of membrane potential Vm. -**`IkOut`** `double` MembraneCurrent. - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`process`** `void` Handles process call -**`handleVm`** `double` Handles Vm message coming in from compartment -**`addPermeability`** `double` Handles permeability message coming in from channel -**`CinDest`** `double` Alias for set_Cin -**`CoutDest`** `double` Alias for set_Cout -**`addPermeability`** `double` Handles permeability message coming in from channel - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`channel`** `void` This is a shared message to couple channel to compartment. The first entry is a MsgSrc to send Gk and Ek to the compartment The second entry is a MsgDest for Vm from the compartment. -**`ghk`** `void` Message from channel to current Goldman-Hodgkin-Katz objectThis shared message connects to an HHChannel. The first entry is a MsgSrc which relays the Vm received from a compartment. The second entry is a MsgDest which receives channel conductance, and interprets it as permeability. - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## Geometry - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`epsilon`** `double` epsilon is the max deviation of surface-point from surface.I think it refers to when the molecule is stuck to the surface. Need to check with Steven. -**`neighdist`** `double` neighdist is capture distance from one panel to another.When a molecule diffuses off one panel and is within neighdist of the other, it is captured by the second. - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`returnSize`** `double` Return size of compartment - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`handleSizeRequest`** `void` Handles a request for size. Part of SharedMsg to ChemCompt. - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`compt`** `void` Connects to compartment(s) to specify geometry. - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## Group - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`group`** `void` Handle for grouping Elements - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) - - -#### Shared message fields - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## GslIntegrator - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`isInitialized`** `bool` True if the Stoich message has come in to set parms -**`method`** `string` Numerical method to use. -**`relativeAccuracy`** `double` Accuracy criterion -**`absoluteAccuracy`** `double` Another accuracy criterion - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`stoich`** `Id` Handle data from Stoich -**`remesh`** `double,unsigned int,unsigned int,vector<unsigned int>,vector<double>` Handle commands to remesh the pool. This may involve changing the number of pool entries, as well as changing their volumes -**`process`** `void` Handles process call -**`reinit`** `void` Handles reinit call - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`proc`** `void` Shared message for process and reinit - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## GslStoich - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`isInitialized`** `bool` True if the Stoich message has come in to set parms -**`method`** `string` Numerical method to use. -**`relativeAccuracy`** `double` Accuracy criterion -**`absoluteAccuracy`** `double` Another accuracy criterion -**`compartment`** `Id` This is the Id of the compartment, which must be derived fromthe ChemMesh baseclass. The GslStoich needsthe ChemMesh Id only for diffusion, and one can pass in Id() instead if there is no diffusion, or just leave it unset. - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`addJunction`** `Id` Add a junction between the current solver and the one whose Id is passed in. -**`dropJunction`** `Id` Drops a junction between the current solver and the one whose Id is passed in. Ignores if no junction. -**`stoich`** `Id` Assign the StoichCore and ChemMesh Ids. The GslStoich needsthe StoichCore pointer in all cases, in order to perform allcalculations. -**`remesh`** `double,unsigned int,unsigned int,vector<unsigned int>,vector<double>` Handle commands to remesh the pool. This may involve changing the number of pool entries, as well as changing their volumes -**`process`** `void` Handles process call -**`reinit`** `void` Handles reinit call -**`initProc`** `void` Handles init call -**`initReinit`** `void` Handles initReinit call - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`proc`** `void` Shared message for process and reinit -**`init`** `void` Shared message for init and initReinit - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## GssaStoich -**Author**: Upinder S. Bhalla, 2008, 2011, NCBS - -**Description**: GssaStoich: Gillespie Stochastic Simulation Algorithm object.Closely based on the Stoich object and inherits its handling functions for constructing the matrix. Sets up stoichiometry matrix based calculations from a - -wildcard path for the reaction system.Knows how to compute derivatives for most common things, also knows how to handle special cases where the object will have to do its own computation.Generates a stoichiometry matrix, which is useful for lots of other operations as well. - - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`useOneWayReacs`** `bool` Flag: use bidirectional or one-way reacs. One-way is neededfor Gillespie type stochastic calculations. Two-way islikely to be margninally more efficient in ODE calculations -**`nVarPools`** `unsigned int` Number of variable molecule pools in the reac system -**`numMeshEntries`** `unsigned int` Number of meshEntries in reac-diff system -**`estimatedDt`** `double` Estimate of fastest (smallest) timescale in system.This is fallible because it depends on instantaneous concs,which of course change over the course of the simulation. -**`path`** `string` Path of reaction system to take over -**`path`** `string` Path of reaction system to take over and solve -**`method`** `string` Numerical method to use for the GssaStoich. The defaultand currently the only method is Gillespie1. - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`plugin`** `Id` Sends out Stoich Id so that plugins can directly access fields and functions -**`nodeDiffBoundary`** `unsigned int,vector<unsigned int>,vector<double>` Sends mol #s across boundary between nodes, to calculate diffusionterms. arg1 is originating node, arg2 is list of meshIndices forwhich data is being transferred, and arg3 are the 'n' values forall the pools on the specified meshIndices, to be plugged intothe appropriate place on the recipient node's S_ matrix -**`poolsReactingAcrossBoundary`** `unsigned int,vector<double>` A vector of mol counts (n) of those pools that react across a boundary. Sent over to another Stoich every sync timestep so that the target Stoich has both sides of the boundary reaction. Assumes that the mesh encolosing the target Stoich also encloses the reaction object. -**`reacRollbacksAcrossBoundary`** `unsigned int,vector<double>` Occasionally, a Gillespie advance will cause the mol conc on the target stoich side to become negative. If so, this message does a patch up job by telling the originating Stoich to roll back to the specified number of reac firings, which is the max that the target was able to handle. This is probably numerically naughty, but it is better than negative concentrations -**`reacRatesAcrossBoundary`** `unsigned int,vector<double>` A vector of reac rates (V) of each reaction crossing the boundary between compartments. Sent over to another Stoich every sync timestep so that the target Stoich has both sides of the boundary reaction. In the case of Gillespie calculations *V* is the integer # of transitions (firings) of each reaction. Assumes that the mesh encolosing the target Stoich also encloses the reaction object. - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`meshSplit`** `double,vector<double>,vector<unsigned int>,vector< vector<unsigned int> >,vector< vector<unsigned int> >` Handles message from ChemMesh that defines how meshEntries are decomposed on this node, and how they communicate between nodes.Args: (oldVol, volumeVectorForAllEntries, localEntryList, outgoingDiffusion[node#][entry#], incomingDiffusion[node#][entry#]) -**`handleReacRatesAcrossBoundary`** `unsigned int,vector<double>` When we have reactions that cross compartment boundaries, we may have different solvers and meshes on either side. This message handle info for two things: Arg 1: An identifier for the boundary. Arg 2: A vector of reaction rates for every reaction across the boundary, in every mesh entry. -**`handlePoolsReactingAcrossBoundary`** `unsigned int,vector<double>` When we have reactions that cross compartment boundaries, we may have different solvers and meshes on either side. This message handle info for two things: Arg 1: An identifier for the boundary. Arg 2: A vector of pool #s for every pool that reacts across the boundary, in every mesh entry. that reacts across a boundary, in every mesh entry -**`handleReacRollbacksAcrossBoundary`** `unsigned int,vector<double>` When we have reactions that cross compartment boundaries, we may have different solvers and meshes on either side. Only one side does the calculations to assure mass conservation. There are rare cases when the calculations of one solver, typically a Gillespie one, gives such a large change that the concentrations on the other side would become negative in one or more molecules This message handles such cases on the Gillespie side, by telling the solver to roll back its recent calculation and instead use the specified vector for the rates, that is the # of mols changed in the latest timestep. This message handle info for two things: Arg 1: An identifier for the boundary. Arg 2: A vector of reaction rates for every reaction across the boundary, in every mesh entry. -**`process`** `void` Handles process call -**`reinit`** `void` Handles reinint call - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`boundaryReacOut`** `void` Shared message between Stoichs to handle reactions taking molecules between the pools handled by the two Stoichs. -**`boundaryReacIn`** `void` Shared message between Stoichs to handle reactions taking molecules between the pools handled by the two Stoichs. -**`proc`** `void` Shared message for process and reinit - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## HDF5DataWriter -**Author**: Subhasis Ray - -**Description**: HDF5 file writer for saving data tables. It saves the tables connected to it via `requestData` field into an HDF5 file. The path of the table is maintained in the HDF5 file, with a HDF5 group for each element above the table. - -Thus, if you have a table `/data/VmTable` in MOOSE, then it will be written as an HDF5 table called `VmTable` inside an HDF5 Group called `data`. - -However Table inside Table is considered a pathological case and is not handled. - -At every process call it writes the contents of the tables to the file and clears the table vectors. You can explicitly force writing of the data via the `flush` function. - - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`filename`** `string` Name of the file associated with this HDF5 writer object. -**`isOpen`** `bool` True if this object has an open file handle. -**`mode`** `unsigned int` Depending on mode, if file already exists, if mode=1, data will be appended to existing file, if mode=2, file will be truncated, if mode=4, no writing will happen. - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`requestData`** `unsigned int` Sends request for a field to target object -**`clear`** `void` Send request to clear a Table vector. - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`flush`** `void` Write all buffer contents to file and clear the buffers. -**`recvData`** `bad` Handles data sent back following request -**`process`** `void` Handle process calls. Write data to file and clear all Table objects associated with this. Hence you want to keep it on a slow clock 1000 times or more slower than that for the tables. -**`reinit`** `void` Reinitialize the object. If the current file handle is valid, it tries to close that and open the file specified in current filename field. - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`proc`** `void` Shared message to receive process and reinit - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## HDF5WriterBase -**Author**: Subhasis Ray - -**Description**: HDF5 file writer base class. This is not to be used directly. Instead, it should be subclassed to provide specific data writing functions. This class provides most basic properties like filename, file opening mode, file open status. - - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`filename`** `string` Name of the file associated with this HDF5 writer object. -**`isOpen`** `bool` True if this object has an open file handle. -**`mode`** `unsigned int` Depending on mode, if file already exists, if mode=1, data will be appended to existing file, if mode=2, file will be truncated, if mode=4, no writing will happen. - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`flush`** `void` Write all buffer contents to file and clear the buffers. - - -#### Shared message fields - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## HHChannel - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`Gbar`** `double` Maximal channel conductance -**`Ek`** `double` Reversal potential of channel -**`Gk`** `double` Channel conductance variable -**`Ik`** `double` Channel current variable -**`Xpower`** `double` Power for X gate -**`Ypower`** `double` Power for Y gate -**`Zpower`** `double` Power for Z gate -**`instant`** `int` Bitmapped flag: bit 0 = Xgate, bit 1 = Ygate, bit 2 = ZgateWhen true, specifies that the lookup table value should beused directly as the state of the channel, rather than usedas a rate term for numerical integration for the state -**`X`** `double` State variable for X gate -**`Y`** `double` State variable for Y gate -**`Z`** `double` State variable for Y gate -**`useConcentration`** `int` Flag: when true, use concentration message rather than Vm tocontrol Z gate - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`channelOut`** `double,double` Sends channel variables Gk and Ek to compartment -**`permeability`** `double` Conductance term going out to GHK object -**`IkOut`** `double` Channel current. This message typically goes to concenobjects that keep track of ion concentration. - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`Vm`** `double` Handles Vm message coming in from compartment -**`Vm`** `double` Handles Vm message coming in from compartment -**`process`** `void` Handles process call -**`reinit`** `void` Handles reinit call -**`concen`** `double` Incoming message from Concen object to specific conc to usein the Z gate calculations -**`createGate`** `string` Function to create specified gate.Argument: Gate type [X Y Z] - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`channel`** `void` This is a shared message to couple channel to compartment. The first entry is a MsgSrc to send Gk and Ek to the compartment The second entry is a MsgDest for Vm from the compartment. -**`ghk`** `void` Message to Goldman-Hodgkin-Katz object -**`proc`** `void` This is a shared message to receive Process message from thescheduler. The first entry is a MsgDest for the Process operation. It has a single argument, ProcInfo, which holds lots of information about current time, thread, dt andso on. - The second entry is a MsgDest for the Reinit operation. It also uses ProcInfo. - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## HHChannel2D - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`Gbar`** `double` Maximal channel conductance -**`Ek`** `double` Reversal potential of channel -**`Gk`** `double` Channel conductance variable -**`Ik`** `double` Channel current variable -**`Xindex`** `string` String for setting X index. -**`Yindex`** `string` String for setting Y index. -**`Zindex`** `string` String for setting Z index. -**`Xpower`** `double` Power for X gate -**`Ypower`** `double` Power for Y gate -**`Zpower`** `double` Power for Z gate -**`instant`** `int` Bitmapped flag: bit 0 = Xgate, bit 1 = Ygate, bit 2 = ZgateWhen true, specifies that the lookup table value should beused directly as the state of the channel, rather than usedas a rate term for numerical integration for the state -**`X`** `double` State variable for X gate -**`Y`** `double` State variable for Y gate -**`Z`** `double` State variable for Y gate - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`channelOut`** `double,double` Sends channel variables Gk and Ek to compartment -**`permeability`** `double` Conductance term going out to GHK object -**`IkOut`** `double` Channel current. This message typically goes to concenobjects that keep track of ion concentration. - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`Vm`** `double` Handles Vm message coming in from compartment -**`Vm`** `double` Handles Vm message coming in from compartment -**`process`** `void` Handles process call -**`reinit`** `void` Handles reinit call -**`concen`** `double` Incoming message from Concen object to specific conc to useas the first concen variable -**`concen2`** `double` Incoming message from Concen object to specific conc to useas the second concen variable - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`channel`** `void` This is a shared message to couple channel to compartment. The first entry is a MsgSrc to send Gk and Ek to the compartment The second entry is a MsgDest for Vm from the compartment. -**`ghk`** `void` Message to Goldman-Hodgkin-Katz object -**`proc`** `void` This is a shared message to receive Process message from thescheduler. The first entry is a MsgDest for the Process operation. It has a single argument, ProcInfo, which holds lots of information about current time, thread, dt andso on. - The second entry is a MsgDest for the Reinit operation. It also uses ProcInfo. - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## HHGate - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`alpha`** `vector<double>` Parameters for voltage-dependent rates, alpha:Set up alpha term using 5 parameters, as follows:y(x) = (A + B * x) / (C + exp((x + D) / F))The original HH equations can readily be cast into this form -**`beta`** `vector<double>` Parameters for voltage-dependent rates, beta:Set up beta term using 5 parameters, as follows:y(x) = (A + B * x) / (C + exp((x + D) / F))The original HH equations can readily be cast into this form -**`tau`** `vector<double>` Parameters for voltage-dependent rates, tau:Set up tau curve using 5 parameters, as follows:y(x) = (A + B * x) / (C + exp((x + D) / F)) -**`mInfinity`** `vector<double>` Parameters for voltage-dependent rates, mInfinity:Set up mInfinity curve using 5 parameters, as follows:y(x) = (A + B * x) / (C + exp((x + D) / F))The original HH equations can readily be cast into this form -**`min`** `double` Minimum range for lookup -**`max`** `double` Minimum range for lookup -**`divs`** `unsigned int` Divisions for lookup. Zero means to use linear interpolation -**`tableA`** `vector<double>` Table of A entries -**`tableB`** `vector<double>` Table of alpha + beta entries -**`useInterpolation`** `bool` Flag: use linear interpolation if true, else direct lookup - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`setupAlpha`** `vector<double>` Set up both gates using 13 parameters, as follows:setupAlpha AA AB AC AD AF BA BB BC BD BF xdivs xmin xmaxHere AA-AF are Coefficients A to F of the alpha (forward) termHere BA-BF are Coefficients A to F of the beta (reverse) termHere xdivs is the number of entries in the table,xmin and xmax define the range for lookup.Outside this range the returned value will be the low [high]entry of the table.The equation describing each table is:y(x) = (A + B * x) / (C + exp((x + D) / F))The original HH equations can readily be cast into this form -**`setupTau`** `vector<double>` Identical to setupAlpha, except that the forms specified bythe 13 parameters are for the tau and m-infinity curves ratherthan the alpha and beta terms. So the parameters are:setupTau TA TB TC TD TF MA MB MC MD MF xdivs xmin xmaxAs before, the equation describing each curve is:y(x) = (A + B * x) / (C + exp((x + D) / F)) -**`tweakAlpha`** `void` Dummy function for backward compatibility. It used to convertthe tables from alpha, beta values to alpha, alpha+betabecause the internal calculations used these forms. Notneeded now, deprecated. -**`tweakTau`** `void` Dummy function for backward compatibility. It used to convertthe tables from tau, minf values to alpha, alpha+betabecause the internal calculations used these forms. Notneeded now, deprecated. -**`setupGate`** `vector<double>` Sets up one gate at a time using the alpha/beta form.Has 9 parameters, as follows:setupGate A B C D F xdivs xmin xmax is_betaThis sets up the gate using the equation:y(x) = (A + B * x) / (C + exp((x + D) / F))Deprecated. - - -#### Shared message fields - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. -**`A`** `double,double` lookupA: Look up the A gate value from a double. Usually doesso by direct scaling and offset to an integer lookup, usinga fine enough table granularity that there is little error.Alternatively uses linear interpolation.The range of the double is predefined based on knowledge ofvoltage or conc ranges, and the granularity is specified bythe xmin, xmax, and dV fields. -**`B`** `double,double` lookupB: Look up the B gate value from a double.Note that this looks up the raw tables, which are transformedfrom the reference parameters. - - -## HHGate2D - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) - - -#### Shared message fields - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. -**`A`** `vector<double>,double` lookupA: Look up the A gate value from two doubles, passedin as a vector. Uses linear interpolation in the 2D tableThe range of the lookup doubles is predefined based on knowledge of voltage or conc ranges, and the granularity is specified by the xmin, xmax, and dx field, and their y-axis counterparts. -**`B`** `vector<double>,double` lookupB: Look up B gate value from two doubles in a vector. - - -## HSolve - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`seed`** `Id` Use this field to specify path to a 'seed' compartment, that is, any compartment within a neuron. The HSolve object uses this seed as a handle to discover the rest of the neuronal model, which means all the remaining compartments, channels, synapses, etc. -**`target`** `string` Specifies the path to a compartmental model to be taken over. This can be the path to any container object that has the model under it (found by performing a deep search). Alternatively, this can also be the path to any compartment within the neuron. This compartment will be used as a handle to discover the rest of the model, which means all the remaining compartments, channels, synapses, etc. -**`dt`** `double` The time-step for this solver. -**`caAdvance`** `int` This flag determines how current flowing into a calcium pool is computed. A value of 0 means that the membrane potential at the beginning of the time-step is used for the calculation. This is how GENESIS does its computations. A value of 1 means the membrane potential at the middle of the time-step is used. This is the correct way of integration, and is the default way. -**`vDiv`** `int` Specifies number of divisions for lookup tables of voltage-sensitive channels. -**`vMin`** `double` Specifies the lower bound for lookup tables of voltage-sensitive channels. Default is to automatically decide based on the tables of the channels that the solver reads in. -**`vMax`** `double` Specifies the upper bound for lookup tables of voltage-sensitive channels. Default is to automatically decide based on the tables of the channels that the solver reads in. -**`caDiv`** `int` Specifies number of divisions for lookup tables of calcium-sensitive channels. -**`caMin`** `double` Specifies the lower bound for lookup tables of calcium-sensitive channels. Default is to automatically decide based on the tables of the channels that the solver reads in. -**`caMax`** `double` Specifies the upper bound for lookup tables of calcium-sensitive channels. Default is to automatically decide based on the tables of the channels that the solver reads in. - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`process`** `void` Handles 'process' call: Solver advances by one time-step. -**`reinit`** `void` Handles 'reinit' call: Solver reads in model. - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`proc`** `void` Handles 'reinit' and 'process' calls from a clock. - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## HemispherePanel - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`nPts`** `unsigned int` Number of points used by panel to specify geometry -**`nDims`** `unsigned int` Number of Dimensions used by panel to specify geometry -**`numNeighbors`** `unsigned int` Number of Neighbors of panel -**`shapeId`** `unsigned int` Identifier for shape type, as used by Smoldyn -**`coords`** `vector<double>` All the coordinates for the panel. X vector, then Y, then ZZ can be left out for 2-D panels.Z and Y can be left out for 1-D panels. - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`toNeighbor`** `void` Identifies neighbors of the current panel - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`neighbor`** `void` Handles incoming message from neighbor - - -#### Shared message fields - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. -**`x`** `unsigned int,double` x coordinate identified by index -**`y`** `unsigned int,double` y coordinate identified by index -**`z`** `unsigned int,double` z coordinate identified by index - - -## IntFire - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`numSynapses`** `unsigned int` Number of synapses on SynBase -**`Vm`** `double` Membrane potential -**`tau`** `double` charging time-course -**`thresh`** `double` firing threshold -**`refractoryPeriod`** `double` Minimum time between successive spikes - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`spike`** `double` Sends out spike events - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`process`** `void` Handles process call -**`reinit`** `void` Handles reinit call - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`proc`** `void` Shared message for process and reinit - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## Interpol2D - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`xmin`** `double` Minimum value for x axis of lookup table -**`xmax`** `double` Maximum value for x axis of lookup table -**`xdivs`** `unsigned int` # of divisions on x axis of lookup table -**`dx`** `double` Increment on x axis of lookup table -**`ymin`** `double` Minimum value for y axis of lookup table -**`ymax`** `double` Maximum value for y axis of lookup table -**`ydivs`** `unsigned int` # of divisions on y axis of lookup table -**`dy`** `double` Increment on y axis of lookup table -**`tableVector2D`** `vector< vector<double> >` Get the entire table. - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`trig`** `double` respond to a request for a value lookup - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`lookup`** `double,double` Looks up table value based on indices v1 and v2, and sendsvalue back using the 'trig' message - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`lookupReturn2D`** `void` This is a shared message for doing lookups on the table. Receives 2 doubles: x, y. Sends back a double with the looked-up z value. - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. -**`table`** `vector<unsigned int>,double` Lookup an entry on the table -**`z`** `vector<double>,double` Interpolated value for specified x and y. This is provided for debugging. Normally other objects will retrieve interpolated values via lookup message. - - -## IzhikevichNrn - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`Vmax`** `double` Maximum membrane potential. Membrane potential is reset to c whenever it reaches Vmax. NOTE: Izhikevich model specifies the PEAK voltage, rather than THRSHOLD voltage. The threshold depends on the previous history. -**`c`** `double` Reset potential. Membrane potential is reset to c whenever it reaches Vmax. -**`d`** `double` Parameter d in Izhikevich model. Unit is V/s. -**`a`** `double` Parameter a in Izhikevich model. Unit is s^{-1} -**`b`** `double` Parameter b in Izhikevich model. Unit is s^{-1} -**`u`** `double` Parameter u in Izhikevich equation. Unit is V/s -**`Vm`** `double` Membrane potential, equivalent to v in Izhikevich equation. -**`Im`** `double` Total current going through the membrane. Unit is A. -**`Rm`** `double` Hidden cefficient of input current term (I) in Izhikevich model. Defaults to 1e6 Ohm. -**`initVm`** `double` Initial membrane potential. Unit is V. -**`initU`** `double` Initial value of u. -**`alpha`** `double` Coefficient of v^2 in Izhikevich equation. Defaults to 0.04 in physiological unit. In SI it should be 40000.0. Unit is V^-1 s^{-1} -**`beta`** `double` Coefficient of v in Izhikevich model. Defaults to 5 in physiological unit, 5000.0 for SI units. Unit is s^{-1} -**`gamma`** `double` Constant term in Izhikevich model. Defaults to 140 in both physiological and SI units. unit is V/s. - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`VmOut`** `double` Sends out Vm -**`spike`** `double` Sends out spike events - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`process`** `void` Handles process call -**`reinit`** `void` Handles reinit call -**`injectDest`** `double` Injection current into the neuron. -**`cDest`** `double` Destination message to modify parameter c at runtime. -**`dDest`** `double` Destination message to modify parameter d at runtime. -**`bDest`** `double` Destination message to modify parameter b at runtime -**`aDest`** `double` Destination message modify parameter a at runtime. - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`proc`** `void` Shared message to receive Process message from scheduler - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## LeakyIaF - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`Cm`** `double` Membrane capacitance. -**`Rm`** `double` Membrane resistance, inverse of leak-conductance. -**`Em`** `double` Leak reversal potential -**`Vm`** `double` Membrane potential -**`initVm`** `double` Inital value of membrane potential -**`Vreset`** `double` Reset potnetial after firing. -**`Vthreshold`** `double` firing threshold -**`refractoryPeriod`** `double` Minimum time between successive spikes -**`inject`** `double` Injection current. -**`tSpike`** `double` Time of the last spike - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`spike`** `double` Sends out spike events -**`VmOut`** `double` Sends out Vm - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`process`** `void` Handles process call -**`reinit`** `void` Handles reinit call -**`injectDest`** `double` Destination for current input. - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`proc`** `void` Shared message for process and reinit - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## MMenz - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`Km`** `double` Michaelis-Menten constant in SI conc units (milliMolar) -**`numKm`** `double` Michaelis-Menten constant in number units, volume dependent -**`kcat`** `double` Forward rate constant for enzyme, units 1/sec -**`numSubstrates`** `unsigned int` Number of substrates in this MM reaction. Usually 1.Does not include the enzyme itself - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`toSub`** `double,double` Sends out increment of molecules on product each timestep -**`toPrd`** `double,double` Sends out increment of molecules on product each timestep - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`enzDest`** `double` Handles # of molecules of Enzyme -**`subDest`** `double` Handles # of molecules of substrate -**`prdDest`** `double` Handles # of molecules of product. Dummy. -**`process`** `void` Handles process call -**`reinit`** `void` Handles reinit call -**`remesh`** `void` Tells the MMEnz to recompute its numKm after remeshing - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`sub`** `void` Connects to substrate molecule -**`prd`** `void` Connects to product molecule -**`proc`** `void` Shared message for process and reinit - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## MarkovChannel - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`Gbar`** `double` Maximal channel conductance -**`Ek`** `double` Reversal potential of channel -**`Gk`** `double` Channel conductance variable -**`Ik`** `double` Channel current variable -**`ligandconc`** `double` Ligand concentration. -**`vm`** `double` Membrane voltage. -**`numstates`** `unsigned int` The number of states that the channel can occupy. -**`numopenstates`** `unsigned int` The number of states which are open/conducting. -**`state`** `vector<double>` This is a row vector that contains the probabilities of finding the channel in each state. -**`initialstate`** `vector<double>` This is a row vector that contains the probabilities of finding the channel in each state at t = 0. The state of the channel is reset to this value during a call to reinit() -**`labels`** `vector<string>` Labels for each state. -**`gbar`** `vector<double>` A row vector containing the conductance associated with each of the open/conducting states. - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`channelOut`** `double,double` Sends channel variables Gk and Ek to compartment -**`permeability`** `double` Conductance term going out to GHK object -**`IkOut`** `double` Channel current. This message typically goes to concenobjects that keep track of ion concentration. - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`Vm`** `double` Handles Vm message coming in from compartment -**`Vm`** `double` Handles Vm message coming in from compartment -**`process`** `void` Handles process call -**`reinit`** `void` Handles reinit call -**`handleligandconc`** `double` Deals with incoming messages containing information of ligand concentration -**`handlestate`** `vector<double>` Deals with incoming message from MarkovSolver object containing state information of the channel. - - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`channel`** `void` This is a shared message to couple channel to compartment. The first entry is a MsgSrc to send Gk and Ek to the compartment The second entry is a MsgDest for Vm from the compartment. -**`ghk`** `void` Message to Goldman-Hodgkin-Katz object -**`proc`** `void` This is a shared message to receive Process message from thescheduler. The first entry is a MsgDest for the Process operation. It has a single argument, ProcInfo, which holds lots of information about current time, thread, dt andso on. The second entry is a MsgDest for the Reinit operation. It also uses ProcInfo. - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## MarkovGslSolver - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`isInitialized`** `bool` True if the message has come in to set solver parameters. -**`method`** `string` Numerical method to use. -**`relativeAccuracy`** `double` Accuracy criterion -**`absoluteAccuracy`** `double` Another accuracy criterion -**`internalDt`** `double` internal timestep to use. - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`stateOut`** `vector<double>` Sends updated state to the MarkovChannel class. - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`init`** `vector<double>` Initialize solver parameters. -**`handleQ`** `vector< vector<double> >` Handles information regarding the instantaneous rate matrix from the MarkovRateTable class. -**`process`** `void` Handles process call -**`reinit`** `void` Handles reinit call - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`proc`** `void` Shared message for process and reinit - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## MarkovRateTable - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`vm`** `double` Membrane voltage. -**`ligandconc`** `double` Ligand concentration. -**`Q`** `vector< vector<double> >` Instantaneous rate matrix. -**`size`** `unsigned int` Dimension of the families of lookup tables. Is always equal to the number of states in the model. - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`instratesOut`** `vector< vector<double> >` Sends out instantaneous rate information of varying transition rates at each time step. - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`handleVm`** `double` Handles incoming message containing voltage information. -**`process`** `void` Handles process call -**`reinit`** `void` Handles reinit call -**`init`** `unsigned int` Initialization of the class. Allocates memory for all the tables. -**`handleLigandConc`** `double` Handles incoming message containing ligand concentration. -**`set1d`** `unsigned int,unsigned int,Id,unsigned int` Setting up of 1D lookup table for the (i,j)'th rate. -**`set2d`** `unsigned int,unsigned int,Id` Setting up of 2D lookup table for the (i,j)'th rate. -**`setconst`** `unsigned int,unsigned int,double` Setting a constant value for the (i,j)'th rate. Internally, this is stored as a 1-D rate with a lookup table containing 1 entry. - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`channel`** `void` This message couples the rate table to the compartment. The rate table needs updates on voltage in order to compute the rate table. -**`proc`** `void` This is a shared message to receive Process message from thescheduler. The first entry is a MsgDest for the Process operation. It has a single argument, ProcInfo, which holds lots of information about current time, thread, dt andso on. The second entry is a MsgDest for the Reinit operation. It also uses ProcInfo. - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## MarkovSolver - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`Q`** `vector< vector<double> >` Instantaneous rate matrix. -**`state`** `vector<double>` Current state of the channel. -**`initialstate`** `vector<double>` Initial state of the channel. -**`xmin`** `double` Minimum value for x axis of lookup table -**`xmax`** `double` Maximum value for x axis of lookup table -**`xdivs`** `unsigned int` # of divisions on x axis of lookup table -**`invdx`** `double` Reciprocal of increment on x axis of lookup table -**`ymin`** `double` Minimum value for y axis of lookup table -**`ymax`** `double` Maximum value for y axis of lookup table -**`ydivs`** `unsigned int` # of divisions on y axis of lookup table -**`invdy`** `double` Reciprocal of increment on y axis of lookup table - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`stateOut`** `vector<double>` Sends updated state to the MarkovChannel class. - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`handleVm`** `double` Handles incoming message containing voltage information. -**`process`** `void` Handles process call -**`reinit`** `void` Handles reinit call -**`ligandconc`** `double` Handles incoming message containing ligand concentration. -**`init`** `Id,double` Setups the table of matrix exponentials associated with the solver object. -**`process`** `void` Handles process call -**`reinit`** `void` Handles reinit call - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`channel`** `void` This message couples the MarkovSolverBase to the Compartment. The compartment needs Vm in order to look up the correct matrix exponential for computing the state. -**`proc`** `void` This is a shared message to receive Process message from thescheduler. The first entry is a MsgDest for the Process operation. It has a single argument, ProcInfo, which holds lots of information about current time, thread, dt andso on. The second entry is a MsgDest for the Reinit operation. It also uses ProcInfo. -**`proc`** `void` This is a shared message to receive Process message from thescheduler. The first entry is a MsgDest for the Process operation. It has a single argument, ProcInfo, which holds lots of information about current time, thread, dt andso on. The second entry is a MsgDest for the Reinit operation. It also uses ProcInfo. - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## MarkovSolverBase - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`Q`** `vector< vector<double> >` Instantaneous rate matrix. -**`state`** `vector<double>` Current state of the channel. -**`initialstate`** `vector<double>` Initial state of the channel. -**`xmin`** `double` Minimum value for x axis of lookup table -**`xmax`** `double` Maximum value for x axis of lookup table -**`xdivs`** `unsigned int` # of divisions on x axis of lookup table -**`invdx`** `double` Reciprocal of increment on x axis of lookup table -**`ymin`** `double` Minimum value for y axis of lookup table -**`ymax`** `double` Maximum value for y axis of lookup table -**`ydivs`** `unsigned int` # of divisions on y axis of lookup table -**`invdy`** `double` Reciprocal of increment on y axis of lookup table - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`stateOut`** `vector<double>` Sends updated state to the MarkovChannel class. - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`handleVm`** `double` Handles incoming message containing voltage information. -**`process`** `void` Handles process call -**`reinit`** `void` Handles reinit call -**`ligandconc`** `double` Handles incoming message containing ligand concentration. -**`init`** `Id,double` Setups the table of matrix exponentials associated with the solver object. - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`channel`** `void` This message couples the MarkovSolverBase to the Compartment. The compartment needs Vm in order to look up the correct matrix exponential for computing the state. -**`proc`** `void` This is a shared message to receive Process message from thescheduler. The first entry is a MsgDest for the Process operation. It has a single argument, ProcInfo, which holds lots of information about current time, thread, dt andso on. The second entry is a MsgDest for the Reinit operation. It also uses ProcInfo. - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## MathFunc - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`mathML`** `string` MathML version of expression to compute -**`function`** `string` function is for functions of form f(x, y) = x + y -**`result`** `double` result value - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`output`** `double` Sends out result of computation - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`arg1`** `double` Handle arg1 -**`arg2`** `double` Handle arg2 -**`arg3`** `double` Handle arg3 -**`arg4`** `double` Handle arg4 -**`process`** `void` Handle process call -**`reinit`** `void` Handle reinit call - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`proc`** `void` Shared message for process and reinit - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## Mdouble - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`this`** `double` Access function for entire Mdouble object. -**`value`** `double` Access function for value field of Mdouble object,which happens also to be the entire contents of the object. - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) - - -#### Shared message fields - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## MeshEntry - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`size`** `double` Volume of this MeshEntry -**`dimensions`** `unsigned int` number of dimensions of this MeshEntry -**`meshType`** `unsigned int` The MeshType defines the shape of the mesh entry. 0: Not assigned 1: cuboid 2: cylinder 3. cylindrical shell 4: cylindrical shell segment 5: sphere 6: spherical shell 7: spherical shell segment 8: Tetrahedral -**`Coordinates`** `vector<double>` Coordinates that define current MeshEntry. Depend on MeshType. -**`neighbors`** `vector<unsigned int>` Indices of other MeshEntries that this one connects to -**`DiffusionArea`** `vector<double>` Diffusion area for geometry of interface -**`DiffusionScaling`** `vector<double>` Diffusion scaling for geometry of interface - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`remesh`** `double,unsigned int,unsigned int,vector<unsigned int>,vector<double>` Tells the target pool or other entity that the compartment subdivision(meshing) has changed, and that it has to redo its volume and memory allocation accordingly.Arguments are: oldvol, numTotalEntries, startEntry, localIndices, volsThe vols specifies volumes of each local mesh entry. It also specifieshow many meshEntries are present on the local node.The localIndices vector is used for general load balancing only.It has a list of the all meshEntries on current node.If it is empty, we assume block load balancing. In this secondcase the contents of the current node go from startEntry to startEntry + vols.size(). -**`remeshReacs`** `void` Tells connected enz or reac that the compartment subdivision(meshing) has changed, and that it has to redo its volume-dependent rate terms like numKf_ accordingly. - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`group`** `void` Handle for grouping. Doesn't do anything. -**`process`** `void` Handles process call -**`reinit`** `void` Handles reinit call - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`proc`** `void` Shared message for process and reinit -**`mesh`** `void` Shared message for updating mesh volumes and subdivisions,typically controls pool sizes - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## MgBlock - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`Gbar`** `double` Maximal channel conductance -**`Ek`** `double` Reversal potential of channel -**`Gk`** `double` Channel conductance variable -**`Ik`** `double` Channel current variable -**`KMg_A`** `double` 1/eta -**`KMg_B`** `double` 1/gamma -**`CMg`** `double` [Mg] in mM -**`Ik`** `double` Current through MgBlock -**`Zk`** `double` Charge on ion - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`channelOut`** `double,double` Sends channel variables Gk and Ek to compartment -**`permeability`** `double` Conductance term going out to GHK object -**`IkOut`** `double` Channel current. This message typically goes to concenobjects that keep track of ion concentration. - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`Vm`** `double` Handles Vm message coming in from compartment -**`Vm`** `double` Handles Vm message coming in from compartment -**`process`** `void` Handles process call -**`origChannel`** `double,double` - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`channel`** `void` This is a shared message to couple channel to compartment. The first entry is a MsgSrc to send Gk and Ek to the compartment The second entry is a MsgDest for Vm from the compartment. -**`ghk`** `void` Message to Goldman-Hodgkin-Katz object - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## Msg - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`e1`** `Id` Id of source Element. -**`e2`** `Id` Id of source Element. -**`srcFieldsOnE1`** `vector<string>` Names of SrcFinfos for messages going from e1 to e2. There arematching entries in the destFieldsOnE2 vector -**`destFieldsOnE2`** `vector<string>` Names of DestFinfos for messages going from e1 to e2. There arematching entries in the srcFieldsOnE1 vector -**`srcFieldsOnE2`** `vector<string>` Names of SrcFinfos for messages going from e2 to e1. There arematching entries in the destFieldsOnE1 vector -**`destFieldsOnE1`** `vector<string>` Names of destFinfos for messages going from e2 to e1. There arematching entries in the srcFieldsOnE2 vector - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) - - -#### Shared message fields - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## Mstring - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`this`** `string` Access function for entire Mstring object. -**`value`** `string` Access function for value field of Mstring object,which happens also to be the entire contents of the object. - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) - - -#### Shared message fields - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## NMDAChan -**Author**: Subhasis Ray, 2010, NCBS - -**Description**: NMDAChan: Extracellular [Mg2+] dependent NMDA channel.This channel has four states as described by Jahr and Stevens (J. Neurosci. 1990, 10(9)) This implementation is based on equation 4(a) in that article. The channel conductance is defined as : k * g(V, [Mg2+]o) * S(t) where k is a scaling constant. S(t) is the legand gated component of the conductance. It rises linearly for t = tau2. Then decays exponentially with time constant t = tau1. g is a function of voltage and the extracellular [Mg2+] defined as: 1 / { 1 + (a1 + a2) * (a1 * B1 + a2 * B2)/ [A * a1 * (b1 + B1) + A * a2 * (b2 + B2)]} - -a1 = 1e3 * exp( - c0 * V - c1) s^{-1}, c0 = 16.0 / V, c1 = 2.91 - -a2 = 1e-3 * [Mg2+] * exp( -c2 * V - c3) mM^{-1} s, c2 = 45.0 / V, c3 = 6.97 - -b1 = 1e3 * exp(c4 * V + c5) s^{-1}, c4 = 9.0 / V, c5 = 1.22 - -b2 = 1e3 * exp(c6 * V + c7) s^{-1}, c6 = 17.0 / V, c7 = 0.96 - -A = 1e3 * exp(-c8) s^{-1}, c8 = 2.847 - -B1 = 1e3 * exp(-c9) s^{-1}, c9 = 0.693 s^{-1} - -B2 = 1e3 * exp(-c10) s^{-1}, c10 = 3.101. - -The behaviour of S(t) is as follows: - -If a spike arrives, then the slope of the linear rise of S(t) is incremented by weight / tau2. - -After tau2 time, this component is removed from the slope (reduced by weight/tau) and added over to the rate of decay of S(t). - - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`numSynapses`** `unsigned int` Number of synapses on SynBase -**`Gbar`** `double` Maximal channel conductance -**`Ek`** `double` Reversal potential of channel -**`Gk`** `double` Channel conductance variable -**`Ik`** `double` Channel current variable -**`tau1`** `double` Decay time constant for the synaptic conductance, tau1 >= tau2. -**`tau2`** `double` Rise time constant for the synaptic conductance, tau1 >= tau2. -**`normalizeWeights`** `bool` Flag. If true, the overall conductance is normalized by the number of individual synapses in this SynChan object. -**`unblocked`** `double` Fraction of channels recovered from Mg2+ block. This is an intermediate variable which corresponds to g(V, [Mg2+]o) in the equation for conductance: k * g(V, [Mg2+]o) * S(t) where k is a constant. -**`MgConc`** `double` External Mg2+ concentration -**`unblocked`** `double` Fraction of channels recovered from Mg2+ block. This is an intermediate variable which corresponds to g(V, [Mg2+]o) in the equation for conductance: k * g(V, [Mg2+]o) * S(t) where k is a constant. -**`saturation`** `double` Upper limit on the NMDA conductance. - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`channelOut`** `double,double` Sends channel variables Gk and Ek to compartment -**`permeability`** `double` Conductance term going out to GHK object -**`IkOut`** `double` Channel current. This message typically goes to concenobjects that keep track of ion concentration. - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`Vm`** `double` Handles Vm message coming in from compartment -**`Vm`** `double` Handles Vm message coming in from compartment -**`process`** `void` Handles process call -**`reinit`** `void` Handles reinit call -**`activation`** `double` Sometimes we want to continuously activate the channel -**`modulator`** `double` Modulate channel response -**`MgConcDest`** `double` Update [Mg2+] from other sources at every time step. - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`channel`** `void` This is a shared message to couple channel to compartment. The first entry is a MsgSrc to send Gk and Ek to the compartment The second entry is a MsgDest for Vm from the compartment. -**`ghk`** `void` Message to Goldman-Hodgkin-Katz object -**`proc`** `void` Shared message to receive Process message from scheduler - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. -**`c`** `unsigned int,double` Transition parameters c0 to c10 in the Mg2+ dependentstate transitions. - - -## Nernst - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`E`** `double` Computed reversal potential -**`Temperature`** `double` Temperature of cell -**`valence`** `int` Valence of ion in Nernst calculation -**`Cin`** `double` Internal conc of ion -**`Cout`** `double` External conc of ion -**`scale`** `double` Voltage scale factor - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`Eout`** `double` Computed reversal potential - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`ci`** `double` Set internal conc of ion, and immediately send out the updated E -**`co`** `double` Set external conc of ion, and immediately send out the updated E - - -#### Shared message fields - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## NeuroMesh - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`size`** `double` Size of entire chemical domain.Assigning this assumes that the geometry is that of the default mesh, which may not be what you want. If so, usea more specific mesh assignment function. -**`numDimensions`** `unsigned int` Number of spatial dimensions of this compartment. Usually 3 or 2 -**`cell`** `Id` Id for base element of cell model. Uses this to traverse theentire tree of the cell to build the mesh. -**`subTree`** `vector<Id>` Set of compartments to model. If they happen to be contiguousthen also set up diffusion between the compartments. Can alsohandle cases where the same cell is divided into multiplenon-diffusively-coupled compartments -**`skipSpines`** `bool` Flag: when skipSpines is true, the traversal does not includeany compartment with the string 'spine' or 'neck' in its name,and also then skips compartments below this skipped one.Allows to set up separate mesh for spines, based on the same cell model. -**`numSegments`** `unsigned int` Number of cylindrical/spherical segments in model -**`numDiffCompts`** `unsigned int` Number of diffusive compartments in model -**`diffLength`** `double` Diffusive length constant to use for subdivisions. The system willattempt to subdivide cell using diffusive compartments ofthe specified diffusion lengths as a maximum.In order to get integral numbersof compartments in each segment, it may subdivide more finely.Uses default of 0.5 microns, that is, half typical lambda.For default, consider a tau of about 1 second for mostreactions, and a diffusion const of about 1e-12 um^2/sec.This gives lambda of 1 micron -**`geometryPolicy`** `string` Policy for how to interpret electrical model geometry (which is a branching 1-dimensional tree) in terms of 3-D constructslike spheres, cylinders, and cones.There are three options, default, trousers, and cylinder:default mode: - Use frustrums of cones. Distal diameter is always from compt dia. - For linear dendrites (no branching), proximal diameter is diameter of the parent compartment - For branching dendrites and dendrites emerging from soma, proximal diameter is from compt dia. Don't worry about overlap. - Place somatic dendrites on surface of spherical soma, or at ends of cylindrical soma - Place dendritic spines on surface of cylindrical dendrites, not emerging from their middle.trousers mode: - Use frustrums of cones. Distal diameter is always from compt dia. - For linear dendrites (no branching), proximal diameter is diameter of the parent compartment - For branching dendrites, use a trouser function. Avoid overlap. - For soma, use some variant of trousers. Here we must avoid overlap - For spines, use a way to smoothly merge into parent dend. Radius of curvature should be similar to that of the spine neck. - Place somatic dendrites on surface of spherical soma, or at ends of cylindrical soma - Place dendritic spines on surface of cylindrical dendrites, not emerging from their middle.cylinder mode: - Use cylinders. Diameter is just compartment dia. - Place somatic dendrites on surface of spherical soma, or at ends of cylindrical soma - Place dendritic spines on surface of cylindrical dendrites, not emerging from their middle. - Ignore spatial overlap. - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`meshSplit`** `double,vector<double>,vector<unsigned int>,vector< vector<unsigned int> >,vector< vector<unsigned int> >` Defines how meshEntries communicate between nodes.Args: oldVol, volListOfAllEntries, localEntryList, outgoingDiffusion[node#][entry#], incomingDiffusion[node#][entry#]This message is meant to go to the SimManager and Stoich. -**`meshStats`** `unsigned int,vector<double>` Basic statistics for mesh: Total # of entries, and a vector ofunique volumes of voxels - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`buildDefaultMesh`** `double,unsigned int` Tells ChemMesh derived class to build a default mesh with thespecified size and number of meshEntries. -**`handleRequestMeshStats`** `void` Handles request from SimManager for mesh stats -**`handleNodeInfo`** `unsigned int,unsigned int` Tells ChemMesh how many nodes and threads per node it is allowed to use. Triggers a return meshSplit message. -**`setCellPortion`** `Id,vector<Id>` Tells NeuroMesh to mesh up a subpart of a cell. For nowassumed contiguous.The first argument is the cell Id. The second is the vectorof Ids to consider in meshing up the subpart. - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`nodeMeshing`** `void` Connects to SimManager to coordinate meshing with paralleldecomposition and with the Stoich - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## Neuron -**Author**: C H Chaitanya - -**Description**: Neuron - A compartment container - - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) - - -#### Shared message fields - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## Neutral -**Author**: Upinder S. Bhalla, 2007, NCBS - -**Description**: Neutral: Base class for all MOOSE classes. Providesaccess functions for housekeeping fields and operations, messagetraversal, and so on. - - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) - - -#### Shared message fields - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## OneToAllMsg - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`e1`** `Id` Id of source Element. -**`e2`** `Id` Id of source Element. -**`srcFieldsOnE1`** `vector<string>` Names of SrcFinfos for messages going from e1 to e2. There arematching entries in the destFieldsOnE2 vector -**`destFieldsOnE2`** `vector<string>` Names of DestFinfos for messages going from e1 to e2. There arematching entries in the srcFieldsOnE1 vector -**`srcFieldsOnE2`** `vector<string>` Names of SrcFinfos for messages going from e2 to e1. There arematching entries in the destFieldsOnE1 vector -**`destFieldsOnE1`** `vector<string>` Names of destFinfos for messages going from e2 to e1. There arematching entries in the srcFieldsOnE2 vector -**`i1`** `DataId` DataId of source Element. - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) - - -#### Shared message fields - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## OneToOneMsg - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`e1`** `Id` Id of source Element. -**`e2`** `Id` Id of source Element. -**`srcFieldsOnE1`** `vector<string>` Names of SrcFinfos for messages going from e1 to e2. There arematching entries in the destFieldsOnE2 vector -**`destFieldsOnE2`** `vector<string>` Names of DestFinfos for messages going from e1 to e2. There arematching entries in the srcFieldsOnE1 vector -**`srcFieldsOnE2`** `vector<string>` Names of SrcFinfos for messages going from e2 to e1. There arematching entries in the destFieldsOnE1 vector -**`destFieldsOnE1`** `vector<string>` Names of destFinfos for messages going from e2 to e1. There arematching entries in the srcFieldsOnE2 vector - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) - - -#### Shared message fields - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## PIDController - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`gain`** `double` This is the proportional gain (Kp). This tuning parameter scales the proportional term. Larger gain usually results in faster response, but too much will lead to instability and oscillation. -**`saturation`** `double` Bound on the permissible range of output. Defaults to maximum double value. -**`command`** `double` The command (desired) value of the sensed parameter. In control theory this is commonly known as setpoint(SP). -**`sensed`** `double` Sensed (measured) value. This is commonly known as process variable(PV) in control theory. -**`tauI`** `double` The integration time constant, typically = dt. This is actually proportional gain divided by integral gain (Kp/Ki)). Larger Ki (smaller tauI) usually leads to fast elimination of steady state errors at the cost of larger overshoot. -**`tauD`** `double` The differentiation time constant, typically = dt / 4. This is derivative gain (Kd) times proportional gain (Kp). Larger Kd (tauD) decreases overshoot at the cost of slowing down transient response and may lead to instability. -**`output`** `double` Output of the PIDController. This is given by: gain * ( error + INTEGRAL[ error dt ] / tau_i + tau_d * d(error)/dt ) - Where gain = proportional gain (Kp), tau_i = integral gain (Kp/Ki) and tau_d = derivative gain (Kd/Kp). In control theory this is also known as the manipulated variable (MV) -**`error`** `double` The error term, which is the difference between command and sensed value. -**`integral`** `double` The integral term. It is calculated as INTEGRAL(error dt) = previous_integral + dt * (error + e_previous)/2. -**`derivative`** `double` The derivative term. This is (error - e_previous)/dt. -**`e_previous`** `double` The error term for previous step. - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`outputOut`** `double` Sends the output of the PIDController. This is known as manipulated variable (MV) in control theory. This should be fed into the process which we are trying to control. - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`commandIn`** `double` Command (desired value) input. This is known as setpoint (SP) in control theory. -**`sensedIn`** `double` Sensed parameter - this is the one to be tuned. This is known as process variable (PV) in control theory. This comes from the process we are trying to control. -**`gainDest`** `double` Destination message to control the PIDController gain dynamically. -**`process`** `void` Handle process calls. -**`reinit`** `void` Reinitialize the object. - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`proc`** `void` This is a shared message to receive Process messages from the scheduler objects.The first entry in the shared msg is a MsgDest for the Process operation. It has a single argument, ProcInfo, which holds lots of information about current time, thread, dt and so on. The second entry is a MsgDest for the Reinit operation. It also uses ProcInfo. - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## Panel - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`nPts`** `unsigned int` Number of points used by panel to specify geometry -**`nDims`** `unsigned int` Number of Dimensions used by panel to specify geometry -**`numNeighbors`** `unsigned int` Number of Neighbors of panel -**`shapeId`** `unsigned int` Identifier for shape type, as used by Smoldyn -**`coords`** `vector<double>` All the coordinates for the panel. X vector, then Y, then ZZ can be left out for 2-D panels.Z and Y can be left out for 1-D panels. - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`toNeighbor`** `void` Identifies neighbors of the current panel - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`neighbor`** `void` Handles incoming message from neighbor - - -#### Shared message fields - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. -**`x`** `unsigned int,double` x coordinate identified by index -**`y`** `unsigned int,double` y coordinate identified by index -**`z`** `unsigned int,double` z coordinate identified by index - - -## Pool - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`n`** `double` Number of molecules in pool -**`nInit`** `double` Initial value of number of molecules in pool -**`diffConst`** `double` Diffusion constant of molecule -**`conc`** `double` Concentration of molecules in this pool -**`concInit`** `double` Initial value of molecular concentration in pool -**`size`** `double` Size of compartment. Units are SI. Utility field, the actual size info is stored on a volume mesh entry in the parent compartment.This is hooked up by a message. If the message isn'tavailable size is just taken as 1 -**`speciesId`** `unsigned int` Species identifier for this mol pool. Eventually link to ontology. - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`nOut`** `double` Sends out # of molecules in pool on each timestep -**`requestMolWt`** `void` Requests Species object for mol wt -**`requestSize`** `double` Requests Size of pool from matching mesh entry - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`group`** `void` Handle for grouping. Doesn't do anything. -**`reacDest`** `double,double` Handles reaction input -**`process`** `void` Handles process call -**`reinit`** `void` Handles reinit call -**`handleMolWt`** `double` Separate finfo to assign molWt, and consequently diffusion const.Should only be used in SharedMsg with species. -**`remesh`** `double,unsigned int,unsigned int,vector<unsigned int>,vector<double>` Handle commands to remesh the pool. This may involve changing the number of pool entries, as well as changing their volumes -**`increment`** `double` Increments mol numbers by specified amount. Can be +ve or -ve -**`decrement`** `double` Decrements mol numbers by specified amount. Can be +ve or -ve - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`reac`** `void` Connects to reaction -**`proc`** `void` Shared message for process and reinit -**`species`** `void` Shared message for connecting to species objects -**`mesh`** `void` Shared message for dealing with mesh operations - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## PoolBase - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`n`** `double` Number of molecules in pool -**`nInit`** `double` Initial value of number of molecules in pool -**`diffConst`** `double` Diffusion constant of molecule -**`conc`** `double` Concentration of molecules in this pool -**`concInit`** `double` Initial value of molecular concentration in pool -**`size`** `double` Size of compartment. Units are SI. Utility field, the actual size info is stored on a volume mesh entry in the parent compartment.This is hooked up by a message. If the message isn'tavailable size is just taken as 1 -**`speciesId`** `unsigned int` Species identifier for this mol pool. Eventually link to ontology. - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`nOut`** `double` Sends out # of molecules in pool on each timestep -**`requestMolWt`** `void` Requests Species object for mol wt -**`requestSize`** `double` Requests Size of pool from matching mesh entry - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`group`** `void` Handle for grouping. Doesn't do anything. -**`reacDest`** `double,double` Handles reaction input -**`process`** `void` Handles process call -**`reinit`** `void` Handles reinit call -**`handleMolWt`** `double` Separate finfo to assign molWt, and consequently diffusion const.Should only be used in SharedMsg with species. -**`remesh`** `double,unsigned int,unsigned int,vector<unsigned int>,vector<double>` Handle commands to remesh the pool. This may involve changing the number of pool entries, as well as changing their volumes - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`reac`** `void` Connects to reaction -**`proc`** `void` Shared message for process and reinit -**`species`** `void` Shared message for connecting to species objects -**`mesh`** `void` Shared message for dealing with mesh operations - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## Port - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`scaleOutRate`** `double` Scaling factor for outgoing rates. Applies to the RateTermscontrolled by this port. Represents a diffusion related term,or the permeability of the port -**`inStart`** `unsigned int` Start index to S_ vector into which incoming molecules should add. -**`inEnd`** `unsigned int` End index to S_ vector into which incoming molecules should add. -**`outStart`** `unsigned int` Start index to S_ vector from where outgoing molecules come. -**`outEnd`** `unsigned int` End index to S_ vector from where outgoing molecules come. - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`availableMolsAtPort`** `vector<Id>` Sends out the full set of molecule Ids that are available for data transfer -**`efflux`** `vector<double>` Molecule #s going out -**`matchedMolsAtPort`** `vector<Id>` Sends out the set of molecule Ids that match between both ports -**`efflux`** `vector<double>` Molecule #s going out - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`handleMatchedMolsAtPort`** `vector<unsigned int>` Handles list of matched molecules worked out by the other port -**`influx`** `vector<double>` Molecule #s coming back in -**`handleAvailableMolsAtPort`** `vector<unsigned int>` Handles list of all species that the other port cares about -**`influx`** `vector<double>` Molecule #s coming back in - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`port1`** `void` Shared message for port. This one initiates the request forsetting up the communications between the portsThe shared message also handles the runtime data transfer -**`port2`** `void` Shared message for port. This one responds to the request forsetting up the communications between the portsThe shared message also handles the runtime data transfer - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## PulseGen - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`output`** `double` Output amplitude -**`baseLevel`** `double` Basal level of the stimulus -**`firstLevel`** `double` Amplitude of the first pulse in a sequence -**`firstWidth`** `double` Width of the first pulse in a sequence -**`firstDelay`** `double` Delay to start of the first pulse in a sequence -**`secondLevel`** `double` Amplitude of the second pulse in a sequence -**`secondWidth`** `double` Width of the second pulse in a sequence -**`secondDelay`** `double` Delay to start of of the second pulse in a sequence -**`count`** `unsigned int` Number of pulses in a sequence -**`trigMode`** `unsigned int` Trigger mode for pulses in the sequence. - 0 : free-running mode where it keeps looping its output - 1 : external trigger, where it is triggered by an external input (and stops after creating the first train of pulses) - 2 : external gate mode, where it keeps generating the pulses in a loop as long as the input is high. - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`outputOut`** `double` Current output level. - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`input`** `double` Handle incoming input that determines gating/triggering onset. -**`levelIn`** `unsigned int,double` Handle level value coming from other objects -**`widthIn`** `unsigned int,double` Handle width value coming from other objects -**`delayIn`** `unsigned int,double` Handle delay value coming from other objects -**`process`** `void` Handles process call, updates internal time stamp. -**`reinit`** `void` Handles reinit call. - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`proc`** `void` This is a shared message to receive Process messages from the scheduler objects.The first entry in the shared msg is a MsgDest for the Process operation. It has a single argument, ProcInfo, which holds lots of information about current time, thread, dt and so on. The second entry is a MsgDest for the Reinit operation. It also uses ProcInfo. - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. -**`level`** `unsigned int,double` Level of the pulse at specified index -**`width`** `unsigned int,double` Width of the pulse at specified index -**`delay`** `unsigned int,double` Delay of the pulse at specified index - - -## RC - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`V0`** `double` Initial value of 'state' -**`R`** `double` Series resistance of the RC circuit. -**`C`** `double` Parallel capacitance of the RC circuit. -**`state`** `double` Output value of the RC circuit. This is the voltage across the capacitor. -**`inject`** `double` Input value to the RC circuit.This is handled as an input current to the circuit. - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`outputOut`** `double` Current output level. - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`injectIn`** `double` Receives input to the RC circuit. All incoming messages are summed up to give the total input current. -**`process`** `void` Handles process call. -**`reinit`** `void` Handle reinitialization - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`proc`** `void` This is a shared message to receive Process messages from the scheduler objects.The first entry in the shared msg is a MsgDest for the Process operation. It has a single argument, ProcInfo, which holds lots of information about current time, thread, dt and so on. The second entry is a MsgDest for the Reinit operation. It also uses ProcInfo. - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## Reac - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`kf`** `double` Forward rate constant, in # units -**`kb`** `double` Reverse rate constant, in # units -**`Kf`** `double` Forward rate constant, in concentration units -**`Kb`** `double` Reverse rate constant, in concentration units -**`numSubstrates`** `unsigned int` Number of substrates of reaction -**`numProducts`** `unsigned int` Number of products of reaction - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`toSub`** `double,double` Sends out increment of molecules on product each timestep -**`toPrd`** `double,double` Sends out increment of molecules on product each timestep - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`subDest`** `double` Handles # of molecules of substrate -**`prdDest`** `double` Handles # of molecules of product -**`process`** `void` Handles process call -**`reinit`** `void` Handles reinit call -**`remesh`** `void` Tells the reac to recompute its numRates, as remeshing has happened - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`sub`** `void` Connects to substrate pool -**`prd`** `void` Connects to substrate pool -**`proc`** `void` Shared message for process and reinit - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## ReacBase - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`kf`** `double` Forward rate constant, in # units -**`kb`** `double` Reverse rate constant, in # units -**`Kf`** `double` Forward rate constant, in concentration units -**`Kb`** `double` Reverse rate constant, in concentration units -**`numSubstrates`** `unsigned int` Number of substrates of reaction -**`numProducts`** `unsigned int` Number of products of reaction - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`toSub`** `double,double` Sends out increment of molecules on product each timestep -**`toPrd`** `double,double` Sends out increment of molecules on product each timestep - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`subDest`** `double` Handles # of molecules of substrate -**`prdDest`** `double` Handles # of molecules of product -**`process`** `void` Handles process call -**`reinit`** `void` Handles reinit call -**`remesh`** `void` Tells the reac to recompute its numRates, as remeshing has happened - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`sub`** `void` Connects to substrate pool -**`prd`** `void` Connects to substrate pool -**`proc`** `void` Shared message for process and reinit - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## RectPanel - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`nPts`** `unsigned int` Number of points used by panel to specify geometry -**`nDims`** `unsigned int` Number of Dimensions used by panel to specify geometry -**`numNeighbors`** `unsigned int` Number of Neighbors of panel -**`shapeId`** `unsigned int` Identifier for shape type, as used by Smoldyn -**`coords`** `vector<double>` All the coordinates for the panel. X vector, then Y, then ZZ can be left out for 2-D panels.Z and Y can be left out for 1-D panels. - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`toNeighbor`** `void` Identifies neighbors of the current panel - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`neighbor`** `void` Handles incoming message from neighbor - - -#### Shared message fields - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. -**`x`** `unsigned int,double` x coordinate identified by index -**`y`** `unsigned int,double` y coordinate identified by index -**`z`** `unsigned int,double` z coordinate identified by index - - -## ReduceMsg - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`e1`** `Id` Id of source Element. -**`e2`** `Id` Id of source Element. -**`srcFieldsOnE1`** `vector<string>` Names of SrcFinfos for messages going from e1 to e2. There arematching entries in the destFieldsOnE2 vector -**`destFieldsOnE2`** `vector<string>` Names of DestFinfos for messages going from e1 to e2. There arematching entries in the srcFieldsOnE1 vector -**`srcFieldsOnE2`** `vector<string>` Names of SrcFinfos for messages going from e2 to e1. There arematching entries in the destFieldsOnE1 vector -**`destFieldsOnE1`** `vector<string>` Names of destFinfos for messages going from e2 to e1. There arematching entries in the srcFieldsOnE2 vector -**`i1`** `DataId` DataId of source Element. - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) - - -#### Shared message fields - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## Shell - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`reduceArraySize`** `unsigned int` Look up maximum value of an index, here ragged array size,across many nodes, and assign uniformly to all nodes. Normallyfollowed by an operation to assign the size to the object thatwas resized. -**`requestCreate`** `string,Id,Id,string,vector<int>` requestCreate( class, parent, newElm, name, dimensions ): creates a new Element on all nodes with the specified Id. Initiates a callback to indicate completion of operation. Goes to all nodes including self. -**`requestDelete`** `Id` requestDelete( doomedElement ):Deletes specified Element on all nodes.Initiates a callback to indicate completion of operation.Goes to all nodes including self. -**`requestAddMsg`** `string,unsigned int,ObjId,string,ObjId,string` requestAddMsg( type, src, srcField, dest, destField );Creates specified Msg between specified Element on all nodes.Initiates a callback to indicate completion of operation.Goes to all nodes including self. -**`requestQuit`** `void` requestQuit():Emerges from the inner loop, and wraps up. No return value. -**`move`** `Id,Id` move( origId, newParent);Moves origId to become a child of newParent -**`copy`** `vector<Id>,string,unsigned int,bool,bool` copy( origId, newParent, numRepeats, toGlobal, copyExtMsg );Copies origId to become a child of newParent -**`useClock`** `string,string,unsigned int` useClock( path, field, tick# );Specifies which clock tick to use for all elements in Path.The 'field' is typically process, but some cases need to sendupdates to the 'init' field.Tick # specifies which tick to be attached to the objects. -**`sync`** `Id,unsigned int` sync( ElementId, FuncId );Synchronizes Element data indexing across all nodes.Used when distributed ops like message setup might set updifferent #s of data entries on Elements on different nodes.The ElementId is the element being synchronized.The FuncId is the 'get' function for the synchronized field. -**`requestReMesh`** `Id` requestReMesh( meshId );Chops up specified mesh. -**`requestSetParserIdleFlag`** `bool` SetParserIdleFlag( bool isParserIdle );When True, the main ProcessLoop waits a little each cycleso as to avoid pounding on the CPU. -**`ack`** `unsigned int,unsigned int` ack( unsigned int node#, unsigned int status ):Acknowledges receipt and completion of a command on a worker node.Goes back only to master node. -**`requestStart`** `double` requestStart( runtime ):Starts a simulation. Goes to all nodes including self.Initiates a callback to indicate completion of run. -**`requestStep`** `unsigned int` requestStep():Advances a simulation for the specified # of steps.Goes to all nodes including self. -**`requestStop`** `void` requestStop():Gently stops a simulation after completing current ops.After this op it is save to do 'start' again, and it willresume where it left offGoes to all nodes including self. -**`requestSetupTick`** `unsigned int,double` requestSetupTick():Asks the Clock to coordinate the assignment of a specificclock tick. Args: Tick#, dt.Goes to all nodes including self. -**`requestReinit`** `void` requestReinit():Reinits a simulation: sets to time 0.If simulation is running it stops it first.Goes to all nodes including self. - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`receiveGet`** `bad` receiveGet( Uint node#, Uint status, PrepackedBuffer data )Function on master shell that handles the value relayed from worker. -**`setclock`** `unsigned int,double,bool` Assigns clock ticks. Args: tick#, dt -**`handleAck`** `unsigned int,unsigned int` Keeps track of # of acks to a blocking shell command. Arg: Source node num. -**`create`** `string,Id,Id,string,vector<int>` create( class, parent, newElm, name, dimensions ) -**`delete`** `Id` Destroys Element, all its messages, and all its children. Args: Id -**`handleAddMsg`** `string,unsigned int,ObjId,string,ObjId,string` Makes a msg -**`handleQuit`** `void` Stops simulation running and quits the simulator -**`move`** `Id,Id` handleMove( Id orig, Id newParent ): moves an Element to a new parent -**`handleCopy`** `vector<Id>,string,unsigned int,bool,bool` handleCopy( vector< Id > args, string newName, unsigned int nCopies, bool toGlobal, bool copyExtMsgs ): The vector< Id > has Id orig, Id newParent, Id newElm. This function copies an Element and all its children to a new parent. May also expand out the original into nCopies copies. Normally all messages within the copy tree are also copied. If the flag copyExtMsgs is true, then all msgs going out are also copied. -**`handleUseClock`** `string,string,unsigned int` Deals with assignment of path to a given clock. -**`handleSync`** `Id,unsigned int` handleSync( Id Element): Synchronizes DataHandler indexing across nodesThe ElementId is the element being synchronized.The FuncId is the 'get' function for the synchronized field. -**`handleReMesh`** `Id` handleReMesh( Id BaseMesh): Deals with outcome of resizing the meshing in a cellularcompartment (the ChemMesh class). The mesh change has topropagate down to the molecules and reactions managed by this.Mesh. The ElementId is the mesh being synchronized. -**`handleSetParserIdleFlag`** `bool` handleSetParserIdleFlag( bool isParserIdle ): When True, tells the ProcessLoop to wait as the Parser is idle. -**`handleAck`** `unsigned int,unsigned int` Keeps track of # of acks to a blocking shell command. Arg: Source node num. - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`master`** `void` Issues commands from master shell to worker shells located on different nodes. Also handles acknowledgements from them. -**`worker`** `void` Handles commands arriving from master shell on node 0.Sends out acknowledgements from them. -**`clockControl`** `void` Controls the system Clock - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## SimManager - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`syncTime`** `double` SyncTime is the interval between synchronizing solvers5 msec is a typical value -**`autoPlot`** `bool` When the autoPlot flag is true, the simManager guesses whichplots are of interest, and builds them. -**`plotDt`** `double` plotDt is the timestep for plotting variables. As most will bechemical, a default of 1 sec is reasonable -**`runTime`** `double` runTime is the requested duration of the simulation that is stored in some kinds of model definition files. -**`method`** `string` method is the numerical method used for the calculations.This will set up or even replace the solver with one ableto use the specified method. Currently works only with two solvers: GSL and GSSA.The GSL solver has a variety of ODE methods, by defaultRunge-Kutta-Fehlberg.The GSSA solver currently uses the Gillespie StochasticSystems Algorithm, somewhat optimized over the originalmethod. -**`version`** `unsigned int` Numerical version number. Used by kkit -**`modelFamily`** `string` Family classification of model: *kinetic, and *neuron are the options so far. In due course expect to see thingslike detailedNetwork, intFireNetwork, sigNeur and so on. - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`requestMeshStats`** `void` Asks for basic stats for mesh:Total # of entries, and a vector of unique volumes of voxels -**`nodeInfo`** `unsigned int,unsigned int` Sends out # of nodes to use for meshing, and # of threads to use on each node, to the ChemMesh. These numbers sometimesdiffer from the total # of nodes and threads, because the SimManager may have other portions of the model to allocate. - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`build`** `string` Sets up model, with the specified method. The method may beempty if the intention is that methods be set up through hints in the ChemMesh compartments. -**`makeStandardElements`** `string` Sets up the usual infrastructure for a model, with theChemMesh, Stoich, solver and suitable messaging.The argument is the MeshClass to use. -**`meshSplit`** `double,vector<unsigned int>,vector<unsigned int>,vector<unsigned int>,vector<unsigned int>` Handles message from ChemMesh that defines howmeshEntries communicate between nodes.First arg is oldvol, next is list of other nodes, third arg is list number ofmeshEntries to be transferred for each of these nodes, fourth arg is catenated list of meshEntries indices onmy node going to each of the other connected nodes, andlast arg is matching list of meshEntries on other nodes -**`meshStats`** `unsigned int,vector<double>` Basic statistics for mesh: Total # of entries, and a vectorof unique volumes of voxels - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`nodeMeshing`** `void` Connects to ChemMesh to coordinate meshing with paralleldecomposition and with the Stoich - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## SingleMsg - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`e1`** `Id` Id of source Element. -**`e2`** `Id` Id of source Element. -**`srcFieldsOnE1`** `vector<string>` Names of SrcFinfos for messages going from e1 to e2. There arematching entries in the destFieldsOnE2 vector -**`destFieldsOnE2`** `vector<string>` Names of DestFinfos for messages going from e1 to e2. There arematching entries in the srcFieldsOnE1 vector -**`srcFieldsOnE2`** `vector<string>` Names of SrcFinfos for messages going from e2 to e1. There arematching entries in the destFieldsOnE1 vector -**`destFieldsOnE1`** `vector<string>` Names of destFinfos for messages going from e2 to e1. There arematching entries in the srcFieldsOnE2 vector -**`i1`** `DataId` Index of source object. -**`i2`** `DataId` Index of dest object. - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) - - -#### Shared message fields - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## SolverJunction - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`numReacs`** `unsigned int` Number of cross-compartment reactions on this Junction -**`numDiffMols`** `unsigned int` Number of molecule species diffusing across this Junction -**`numMeshEntries`** `unsigned int` Number of voxels (mesh entries) handled by Junction -**`otherCompartment`** `Id` Id of compartment on other side of this Junction. Readily obtained by message traversal, just a utility field. - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`junctionPoolNum`** `vector<double>` Sends out vector of all mol #s needed to compute junction rates. -**`junctionPoolDelta`** `vector<double>` Sends out vector of all mol # changes going across junction. -**`junctionPoolNum`** `vector<double>` Sends out vector of all mol #s needed to compute junction rates. - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`handleJunctionPoolNum`** `vector<double>` Handles vector of doubles specifying pool num, that arrive at the Junction, by redirecting up to parent StoichPools object -**`handleJunctionPoolNum`** `vector<double>` Handles vector of doubles specifying pool num, that arrive at the Junction, by redirecting up to parent StoichPools object -**`handleJunctionPoolDelta`** `vector<double>` Handles vector of doubles with pool num changes that arrive at the Junction, by redirecting up to parent StoichPools object - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`symJunction`** `void` Symmetric shared message between SolverJunctions to handle cross-solver reactions and diffusion. This variant sends only pool mol#s, and is symmetric. -**`masterJunction`** `void` Shared message between SolverJunctions to handle cross-solver reactions and diffusion. This sends the change in pool #, of abutting voxels, and receives the pool# of the same abutting voxels. Thus it operates on the solver that is doing the diffusion calculations. This will typically be the solver that operates at a finer level of detail. The order of detail is Smoldyn > Gillespie > deterministic. For two identical solvers we would typically have one with the finer grid size become the master Junction. -**`followerJunction`** `void` Shared message between SolverJunctions to handle cross-solver reactions and diffusion. This sends the pool #, of its boundary voxels, and receives back changes in the pool# of the same boundary voxels voxels. Thus it operates on the solver that is just tracking the diffusion calculations that the other (master) solver is doing - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## SparseMsg - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`e1`** `Id` Id of source Element. -**`e2`** `Id` Id of source Element. -**`srcFieldsOnE1`** `vector<string>` Names of SrcFinfos for messages going from e1 to e2. There arematching entries in the destFieldsOnE2 vector -**`destFieldsOnE2`** `vector<string>` Names of DestFinfos for messages going from e1 to e2. There arematching entries in the srcFieldsOnE1 vector -**`srcFieldsOnE2`** `vector<string>` Names of SrcFinfos for messages going from e2 to e1. There arematching entries in the destFieldsOnE1 vector -**`destFieldsOnE1`** `vector<string>` Names of destFinfos for messages going from e2 to e1. There arematching entries in the srcFieldsOnE2 vector -**`numRows`** `unsigned int` Number of rows in matrix. -**`numColumns`** `unsigned int` Number of columns in matrix. -**`numEntries`** `unsigned int` Number of Entries in matrix. -**`probability`** `double` connection probability for random connectivity. -**`seed`** `long` Random number seed for generating probabilistic connectivity. - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`setRandomConnectivity`** `double,long` Assigns connectivity with specified probability and seed -**`setEntry`** `unsigned int,unsigned int,unsigned int` Assigns single row,column value -**`unsetEntry`** `unsigned int,unsigned int` Clears single row,column entry -**`clear`** `void` Clears out the entire matrix -**`transpose`** `void` Transposes the sparse matrix - - -#### Shared message fields - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## Species - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`molWt`** `double` Molecular weight of species - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`sendMolWt`** `double` returns molWt. - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`handleMolWtRequest`** `void` Handle requests for molWt. - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`pool`** `void` Connects to pools of this Species type - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## SpherePanel - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`nPts`** `unsigned int` Number of points used by panel to specify geometry -**`nDims`** `unsigned int` Number of Dimensions used by panel to specify geometry -**`numNeighbors`** `unsigned int` Number of Neighbors of panel -**`shapeId`** `unsigned int` Identifier for shape type, as used by Smoldyn -**`coords`** `vector<double>` All the coordinates for the panel. X vector, then Y, then ZZ can be left out for 2-D panels.Z and Y can be left out for 1-D panels. - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`toNeighbor`** `void` Identifies neighbors of the current panel - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`neighbor`** `void` Handles incoming message from neighbor - - -#### Shared message fields - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. -**`x`** `unsigned int,double` x coordinate identified by index -**`y`** `unsigned int,double` y coordinate identified by index -**`z`** `unsigned int,double` z coordinate identified by index - - -## SpikeGen - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`threshold`** `double` Spiking threshold, must cross it going up -**`refractT`** `double` Refractory Time. -**`abs_refract`** `double` Absolute refractory time. Synonym for refractT. -**`hasFired`** `bool` True if SpikeGen has just fired -**`edgeTriggered`** `bool` When edgeTriggered = 0, the SpikeGen will fire an event in each timestep while incoming Vm is > threshold and at least abs_refracttime has passed since last event. This may be problematic if the incoming Vm remains above threshold for longer than abs_refract. Setting edgeTriggered to 1 resolves this as the SpikeGen generatesan event only on the rising edge of the incoming Vm and will remain idle unless the incoming Vm goes below threshold. - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`event`** `double` Sends out a trigger for an event. - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`process`** `void` Handles process call -**`reinit`** `void` Handles reinit call -**`Vm`** `double` Handles Vm message coming in from compartment - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`proc`** `void` Shared message to receive Process message from scheduler - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## Stats - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`mean`** `double` Mean of all sampled values. -**`sdev`** `double` Standard Deviation of all sampled values. -**`sum`** `double` Sum of all sampled values. -**`num`** `unsigned int` Number of all sampled values. - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`reduce`** `unsigned int` Execute statistics reduction operation on all targets andplace results in this object - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`trig`** `void` Triggers Reduction operation. -**`process`** `void` Handles process call -**`reinit`** `void` Handles reinit call -**`process`** `void` Handles process call -**`reinit`** `void` Handles reinit call - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`proc`** `void` Shared message for process and reinit - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## StimulusTable - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`vec`** `vector<double>` vector with all table entries -**`outputValue`** `double` Output value holding current table entry or output of a calculation -**`size`** `unsigned int` size of table. Note that this is the number of x divisions +1since it must represent the largest value as well as thesmallest -**`startTime`** `double` Start time used when table is emitting values. For lookupvalues below this, the table just sends out its zero entry.Corresponds to zeroth entry of table. -**`stopTime`** `double` Time to stop emitting values.If time exceeds this, then the table sends out its last entry.The stopTime corresponds to the last entry of table. -**`loopTime`** `double` If looping, this is the time between successive cycle starts.Defaults to the difference between stopTime and startTime, so that the output waveform cycles with precisely the same duration as the table contents.If larger than stopTime - startTime, then it pauses at the last table value till it is time to go around again.If smaller than stopTime - startTime, then it begins the next cycle even before the first one has reached the end of the table. -**`stepSize`** `double` Increment in lookup (x) value on every timestep. If it isless than or equal to zero, the StimulusTable uses the current timeas the lookup value. -**`stepPosition`** `double` Current value of lookup (x) value.If stepSize is less than or equal to zero, this is set tothe current time to use as the lookup value. -**`doLoop`** `bool` Flag: Should it loop around to startTime once it has reachedstopTime. Default (zero) is to do a single pass. - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`output`** `double` Sends out tabulated data according to lookup parameters. - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`group`** `void` Handle for grouping. Doesn't do anything. -**`linearTransform`** `double,double` Linearly scales and offsets data. Scale first, then offset. -**`xplot`** `string,string` Dumps table contents to xplot-format file. Argument 1 is filename, argument 2 is plotname -**`plainPlot`** `string` Dumps table contents to single-column ascii file. Uses scientific notation. Argument 1 is filename -**`loadCSV`** `string,int,int,char` Reads a single column from a CSV file. Arguments: filename, column#, starting row#, separator -**`loadXplot`** `string,string` Reads a single plot from an xplot file. Arguments: filename, plotnameWhen the file has 2 columns, the 2nd column is loaded. -**`loadXplotRange`** `string,string,unsigned int,unsigned int` Reads a single plot from an xplot file, and selects a subset of points from it. Arguments: filename, plotname, startindex, endindexUses C convention: startindex included, endindex not included.When the file has 2 columns, the 2nd column is loaded. -**`compareXplot`** `string,string,string` Reads a plot from an xplot file and compares with contents of TableBase.Result is put in 'output' field of table.If the comparison fails (e.g., due to zero entries), the return value is -1.Arguments: filename, plotname, comparison_operationOperations: rmsd (for RMSDifference), rmsr (RMSratio ), dotp (Dot product, not yet implemented). -**`compareVec`** `vector<double>,string` Compares contents of TableBase with a vector of doubles.Result is put in 'output' field of table.If the comparison fails (e.g., due to zero entries), the return value is -1.Arguments: Other vector, comparison_operationOperations: rmsd (for RMSDifference), rmsr (RMSratio ), dotp (Dot product, not yet implemented). -**`clearVec`** `void` Handles request to clear the data vector -**`process`** `void` Handles process call, updates internal time stamp. -**`reinit`** `void` Handles reinit call. - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`proc`** `void` Shared message for process and reinit - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. -**`y`** `unsigned int,double` Value of table at specified index - - -## Stoich - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`useOneWayReacs`** `bool` Flag: use bidirectional or one-way reacs. One-way is neededfor Gillespie type stochastic calculations. Two-way islikely to be margninally more efficient in ODE calculations -**`nVarPools`** `unsigned int` Number of variable molecule pools in the reac system -**`numMeshEntries`** `unsigned int` Number of meshEntries in reac-diff system -**`estimatedDt`** `double` Estimate of fastest (smallest) timescale in system.This is fallible because it depends on instantaneous concs,which of course change over the course of the simulation. -**`path`** `string` Path of reaction system to take over - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`plugin`** `Id` Sends out Stoich Id so that plugins can directly access fields and functions -**`nodeDiffBoundary`** `unsigned int,vector<unsigned int>,vector<double>` Sends mol #s across boundary between nodes, to calculate diffusionterms. arg1 is originating node, arg2 is list of meshIndices forwhich data is being transferred, and arg3 are the 'n' values forall the pools on the specified meshIndices, to be plugged intothe appropriate place on the recipient node's S_ matrix -**`poolsReactingAcrossBoundary`** `unsigned int,vector<double>` A vector of mol counts (n) of those pools that react across a boundary. Sent over to another Stoich every sync timestep so that the target Stoich has both sides of the boundary reaction. Assumes that the mesh encolosing the target Stoich also encloses the reaction object. -**`reacRollbacksAcrossBoundary`** `unsigned int,vector<double>` Occasionally, a Gillespie advance will cause the mol conc on the target stoich side to become negative. If so, this message does a patch up job by telling the originating Stoich to roll back to the specified number of reac firings, which is the max that the target was able to handle. This is probably numerically naughty, but it is better than negative concentrations -**`reacRatesAcrossBoundary`** `unsigned int,vector<double>` A vector of reac rates (V) of each reaction crossing the boundary between compartments. Sent over to another Stoich every sync timestep so that the target Stoich has both sides of the boundary reaction. In the case of Gillespie calculations *V* is the integer # of transitions (firings) of each reaction. Assumes that the mesh encolosing the target Stoich also encloses the reaction object. - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`meshSplit`** `double,vector<double>,vector<unsigned int>,vector< vector<unsigned int> >,vector< vector<unsigned int> >` Handles message from ChemMesh that defines how meshEntries are decomposed on this node, and how they communicate between nodes.Args: (oldVol, volumeVectorForAllEntries, localEntryList, outgoingDiffusion[node#][entry#], incomingDiffusion[node#][entry#]) -**`handleReacRatesAcrossBoundary`** `unsigned int,vector<double>` When we have reactions that cross compartment boundaries, we may have different solvers and meshes on either side. This message handle info for two things: Arg 1: An identifier for the boundary. Arg 2: A vector of reaction rates for every reaction across the boundary, in every mesh entry. -**`handlePoolsReactingAcrossBoundary`** `unsigned int,vector<double>` When we have reactions that cross compartment boundaries, we may have different solvers and meshes on either side. This message handle info for two things: Arg 1: An identifier for the boundary. Arg 2: A vector of pool #s for every pool that reacts across the boundary, in every mesh entry. that reacts across a boundary, in every mesh entry -**`handleReacRollbacksAcrossBoundary`** `unsigned int,vector<double>` When we have reactions that cross compartment boundaries, we may have different solvers and meshes on either side. Only one side does the calculations to assure mass conservation. There are rare cases when the calculations of one solver, typically a Gillespie one, gives such a large change that the concentrations on the other side would become negative in one or more molecules This message handles such cases on the Gillespie side, by telling the solver to roll back its recent calculation and instead use the specified vector for the rates, that is the # of mols changed in the latest timestep. This message handle info for two things: Arg 1: An identifier for the boundary. Arg 2: A vector of reaction rates for every reaction across the boundary, in every mesh entry. - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`boundaryReacOut`** `void` Shared message between Stoichs to handle reactions taking molecules between the pools handled by the two Stoichs. -**`boundaryReacIn`** `void` Shared message between Stoichs to handle reactions taking molecules between the pools handled by the two Stoichs. - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## StoichCore - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`useOneWayReacs`** `bool` Flag: use bidirectional or one-way reacs. One-way is neededfor Gillespie type stochastic calculations. Two-way islikely to be margninally more efficient in ODE calculations -**`nVarPools`** `unsigned int` Number of variable molecule pools in the reac system -**`estimatedDt`** `double` Estimate of fastest (smallest) timescale in system.This is fallible because it depends on instantaneous concs,which of course change over the course of the simulation. -**`path`** `string` Path of reaction system to take over - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) - - -#### Shared message fields - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## StoichPools -**Author**: Upinder S. Bhalla, 2012, NCBS - -**Description**: Pure virtual base class for handling reaction pools. GslStoich is derived from this. - - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`addJunction`** `Id` Add a junction between the current solver and the one whose Id is passed in. -**`dropJunction`** `Id` Drops a junction between the current solver and the one whose Id is passed in. Ignores if no junction. - - -#### Shared message fields - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## SumFunc -**Author**: Upi Bhalla - -**Description**: SumFunc object. Adds up all inputs - - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`result`** `double` Outcome of function computation - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`output`** `double` Sends out sum on each timestep - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`input`** `double` Handles input values. This generic message works only in cases where the inputs are commutative, so ordering does not matter. In due course will implement a synapse type extendable, identified system of inputs so that arbitrary numbers of inputs can be unambiguaously defined. -**`process`** `void` Handles process call -**`reinit`** `void` Handles reinit call - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`proc`** `void` Shared message for process and reinit - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## Surface - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`volume`** `double` This is something I'll need to write a function to compute.Perhaps have an update routine as it may be hard to compute but is needed often by the molecules. - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`absorb`** `void` these help the system define non-standard operations for what a molecule does when it hits a surface.The default is reflect.As a molecule may interact with multiple surfaces, it isn't enough to confer a property on the molecule itself. We have to use messages. Perhaps we don't need these, but instead put entities on the surface which the molecule interacts with if it doesn't do the basic reflect operation. -**`transmit`** `void` Surface lets molecules through -**`jump`** `void` dunno -**`mixture`** `void` dunno -**`surface`** `double,double,double` Connects up to a compartment, either as interior or exterior Args are volume, area, perimeter - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) - - -#### Shared message fields - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## SymCompartment - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`Vm`** `double` membrane potential -**`Cm`** `double` Membrane capacitance -**`Em`** `double` Resting membrane potential -**`Im`** `double` Current going through membrane -**`inject`** `double` Current injection to deliver into compartment -**`initVm`** `double` Initial value for membrane potential -**`Rm`** `double` Membrane resistance -**`Ra`** `double` Axial resistance of compartment -**`diameter`** `double` Diameter of compartment -**`length`** `double` Length of compartment -**`x0`** `double` X coordinate of start of compartment -**`y0`** `double` Y coordinate of start of compartment -**`z0`** `double` Z coordinate of start of compartment -**`x`** `double` x coordinate of end of compartment -**`y`** `double` y coordinate of end of compartment -**`z`** `double` z coordinate of end of compartment - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`VmOut`** `double` Sends out Vm value of compartment on each timestep -**`axialOut`** `double` Sends out Vm value of compartment to adjacent compartments,on each timestep -**`raxialOut`** `double,double` Sends out Raxial information on each timestep, fields are Ra and Vm -**`raxialOut`** `double,double` Sends out Ra and Vm on each timestep -**`sumRaxialOut`** `double` Sends out Ra -**`requestSumAxial`** `void` Sends out request for Ra. -**`raxialOut`** `double,double` Sends out Ra and Vm on each timestep -**`sumRaxialOut`** `double` Sends out Ra -**`requestSumAxial`** `void` Sends out request for Ra. -**`Raxial2Out`** `double,double` Sends out Ra and Vm -**`sumRaxial2Out`** `double` Sends out Ra -**`requestSumAxial2`** `void` Sends out request for Ra. -**`Raxial2Out`** `double,double` Sends out Ra and Vm -**`sumRaxial2Out`** `double` Sends out Ra -**`requestSumAxial2`** `void` Sends out request for Ra. -**`Raxial2Out`** `double,double` Sends out Ra and Vm -**`sumRaxial2Out`** `double` Sends out Ra -**`requestSumAxial2`** `void` Sends out request for Ra. - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`injectMsg`** `double` The injectMsg corresponds to the INJECT message in the GENESIS compartment. Unlike the 'inject' field, any value assigned by handleInject applies only for a single timestep.So it needs to be updated every dt for a steady (or varying)injection current -**`randInject`** `double,double` Sends a random injection current to the compartment. Must beupdated each timestep.Arguments to randInject are probability and current. -**`injectMsg`** `double` The injectMsg corresponds to the INJECT message in the GENESIS compartment. Unlike the 'inject' field, any value assigned by handleInject applies only for a single timestep.So it needs to be updated every dt for a steady (or varying)injection current -**`cable`** `void` Message for organizing compartments into groups, calledcables. Doesn't do anything. -**`process`** `void` Handles 'process' call -**`reinit`** `void` Handles 'reinit' call -**`initProc`** `void` Handles Process call for the 'init' phase of the Compartment calculations. These occur as a separate Tick cycle from the regular proc cycle, and should be called before the proc msg. -**`initReinit`** `void` Handles Reinit call for the 'init' phase of the Compartment calculations. -**`handleChannel`** `double,double` Handles conductance and Reversal potential arguments from Channel -**`handleRaxial`** `double,double` Handles Raxial info: arguments are Ra and Vm. -**`handleAxial`** `double` Handles Axial information. Argument is just Vm. -**`raxialSym`** `double,double` Expects Ra and Vm from other compartment. -**`sumRaxial`** `double` Expects Ra from other compartment. -**`handleSumRaxialRequest`** `void` Handle request to send back Ra to originating compartment. -**`parentMsg`** `int` Message from Parent Element(s) - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`proc`** `void` This is a shared message to receive Process messages from the scheduler objects. The Process should be called _second_ in each clock tick, after the Init message.The first entry in the shared msg is a MsgDest for the Process operation. It has a single argument, ProcInfo, which holds lots of information about current time, thread, dt and so on. The second entry is a MsgDest for the Reinit operation. It also uses ProcInfo. -**`init`** `void` This is a shared message to receive Init messages from the scheduler objects. Its job is to separate the compartmental calculations from the message passing. It doesn't really need to be shared, as it does not use the reinit part, but the scheduler objects expect this form of message for all scheduled output. The first entry is a MsgDest for the Process operation. It has a single argument, ProcInfo, which holds lots of information about current time, thread, dt and so on. The second entry is a dummy MsgDest for the Reinit operation. It also uses ProcInfo. -**`channel`** `void` This is a shared message from a compartment to channels. The first entry is a MsgDest for the info coming from the channel. It expects Gk and Ek from the channel as args. The second entry is a MsgSrc sending Vm -**`axial`** `void` This is a shared message between asymmetric compartments. axial messages (this kind) connect up to raxial messages (defined below). The soma should use raxial messages to connect to the axial message of all the immediately adjacent dendritic compartments.This puts the (low) somatic resistance in series with these dendrites. Dendrites should then use raxial messages toconnect on to more distal dendrites. In other words, raxial messages should face outward from the soma. The first entry is a MsgSrc sending Vm to the axialFuncof the target compartment. The second entry is a MsgDest for the info coming from the other compt. It expects Ra and Vm from the other compt as args. Note that the message is named after the source type. -**`raxial`** `void` This is a raxial shared message between asymmetric compartments. The first entry is a MsgDest for the info coming from the other compt. It expects Vm from the other compt as an arg. The second is a MsgSrc sending Ra and Vm to the raxialFunc of the target compartment. -**`raxial1`** `void` This is a raxial shared message between symmetric compartments.It goes from the tail of the current compartment to one closer to the soma. -**`CONNECTTAIL`** `void` This is a raxial shared message between symmetric compartments.It is an alias for raxial1. -**`raxial2`** `void` This is a raxial2 shared message between symmetric compartments.It goes from the head of the current compartment to a compartment further away from the soma -**`CONNECTHEAD`** `void` This is a raxial2 shared message between symmetric compartments.It is an alias for raxial2.It goes from the current compartment to one further from the soma -**`CONNECTCROSS`** `void` This is a raxial2 shared message between symmetric compartments.It is an alias for raxial2.Conceptually, this goes from the tail of the current compartment to the tail of a sibling compartment. However,this works out to the same as CONNECTHEAD in terms of equivalentcircuit. - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## SynBase - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`numSynapses`** `unsigned int` Number of synapses on SynBase - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) - - -#### Shared message fields - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## SynChan - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`numSynapses`** `unsigned int` Number of synapses on SynBase -**`Gbar`** `double` Maximal channel conductance -**`Ek`** `double` Reversal potential of channel -**`Gk`** `double` Channel conductance variable -**`Ik`** `double` Channel current variable -**`tau1`** `double` Decay time constant for the synaptic conductance, tau1 >= tau2. -**`tau2`** `double` Rise time constant for the synaptic conductance, tau1 >= tau2. -**`normalizeWeights`** `bool` Flag. If true, the overall conductance is normalized by the number of individual synapses in this SynChan object. - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`channelOut`** `double,double` Sends channel variables Gk and Ek to compartment -**`permeability`** `double` Conductance term going out to GHK object -**`IkOut`** `double` Channel current. This message typically goes to concenobjects that keep track of ion concentration. - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`Vm`** `double` Handles Vm message coming in from compartment -**`Vm`** `double` Handles Vm message coming in from compartment -**`process`** `void` Handles process call -**`reinit`** `void` Handles reinit call -**`activation`** `double` Sometimes we want to continuously activate the channel -**`modulator`** `double` Modulate channel response - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`channel`** `void` This is a shared message to couple channel to compartment. The first entry is a MsgSrc to send Gk and Ek to the compartment The second entry is a MsgDest for Vm from the compartment. -**`ghk`** `void` Message to Goldman-Hodgkin-Katz object -**`proc`** `void` Shared message to receive Process message from scheduler - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## SynChanBase - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`numSynapses`** `unsigned int` Number of synapses on SynBase -**`Gbar`** `double` Maximal channel conductance -**`Ek`** `double` Reversal potential of channel -**`Gk`** `double` Channel conductance variable -**`Ik`** `double` Channel current variable - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`channelOut`** `double,double` Sends channel variables Gk and Ek to compartment -**`permeability`** `double` Conductance term going out to GHK object -**`IkOut`** `double` Channel current. This message typically goes to concenobjects that keep track of ion concentration. - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`Vm`** `double` Handles Vm message coming in from compartment -**`Vm`** `double` Handles Vm message coming in from compartment - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`channel`** `void` This is a shared message to couple channel to compartment. The first entry is a MsgSrc to send Gk and Ek to the compartment The second entry is a MsgDest for Vm from the compartment. -**`ghk`** `void` Message to Goldman-Hodgkin-Katz object - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## Synapse - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`weight`** `double` Synaptic weight -**`delay`** `double` Axonal propagation delay to this synapse - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`addSpike`** `double` Handles arriving spike messages, by redirecting up to parent SynBase object - - -#### Shared message fields - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## Table - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`vec`** `vector<double>` vector with all table entries -**`outputValue`** `double` Output value holding current table entry or output of a calculation -**`size`** `unsigned int` size of table. Note that this is the number of x divisions +1since it must represent the largest value as well as thesmallest -**`threshold`** `double` threshold used when Table acts as a buffer for spikes - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`requestData`** `unsigned int` Sends request for a field to target object - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`group`** `void` Handle for grouping. Doesn't do anything. -**`linearTransform`** `double,double` Linearly scales and offsets data. Scale first, then offset. -**`xplot`** `string,string` Dumps table contents to xplot-format file. Argument 1 is filename, argument 2 is plotname -**`plainPlot`** `string` Dumps table contents to single-column ascii file. Uses scientific notation. Argument 1 is filename -**`loadCSV`** `string,int,int,char` Reads a single column from a CSV file. Arguments: filename, column#, starting row#, separator -**`loadXplot`** `string,string` Reads a single plot from an xplot file. Arguments: filename, plotnameWhen the file has 2 columns, the 2nd column is loaded. -**`loadXplotRange`** `string,string,unsigned int,unsigned int` Reads a single plot from an xplot file, and selects a subset of points from it. Arguments: filename, plotname, startindex, endindexUses C convention: startindex included, endindex not included.When the file has 2 columns, the 2nd column is loaded. -**`compareXplot`** `string,string,string` Reads a plot from an xplot file and compares with contents of TableBase.Result is put in 'output' field of table.If the comparison fails (e.g., due to zero entries), the return value is -1.Arguments: filename, plotname, comparison_operationOperations: rmsd (for RMSDifference), rmsr (RMSratio ), dotp (Dot product, not yet implemented). -**`compareVec`** `vector<double>,string` Compares contents of TableBase with a vector of doubles.Result is put in 'output' field of table.If the comparison fails (e.g., due to zero entries), the return value is -1.Arguments: Other vector, comparison_operationOperations: rmsd (for RMSDifference), rmsr (RMSratio ), dotp (Dot product, not yet implemented). -**`clearVec`** `void` Handles request to clear the data vector -**`input`** `double` Fills data into the Table. -**`spike`** `double` Fills spike timings into the Table. Signal has to exceed thresh -**`recvData`** `bad` Handles data sent back following request -**`process`** `void` Handles process call, updates internal time stamp. -**`reinit`** `void` Handles reinit call. - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`proc`** `void` Shared message for process and reinit - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. -**`y`** `unsigned int,double` Value of table at specified index - - -## TableBase - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`vec`** `vector<double>` vector with all table entries -**`outputValue`** `double` Output value holding current table entry or output of a calculation -**`size`** `unsigned int` size of table. Note that this is the number of x divisions +1since it must represent the largest value as well as thesmallest - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`group`** `void` Handle for grouping. Doesn't do anything. -**`linearTransform`** `double,double` Linearly scales and offsets data. Scale first, then offset. -**`xplot`** `string,string` Dumps table contents to xplot-format file. Argument 1 is filename, argument 2 is plotname -**`plainPlot`** `string` Dumps table contents to single-column ascii file. Uses scientific notation. Argument 1 is filename -**`loadCSV`** `string,int,int,char` Reads a single column from a CSV file. Arguments: filename, column#, starting row#, separator -**`loadXplot`** `string,string` Reads a single plot from an xplot file. Arguments: filename, plotnameWhen the file has 2 columns, the 2nd column is loaded. -**`loadXplotRange`** `string,string,unsigned int,unsigned int` Reads a single plot from an xplot file, and selects a subset of points from it. Arguments: filename, plotname, startindex, endindexUses C convention: startindex included, endindex not included.When the file has 2 columns, the 2nd column is loaded. -**`compareXplot`** `string,string,string` Reads a plot from an xplot file and compares with contents of TableBase.Result is put in 'output' field of table.If the comparison fails (e.g., due to zero entries), the return value is -1.Arguments: filename, plotname, comparison_operationOperations: rmsd (for RMSDifference), rmsr (RMSratio ), dotp (Dot product, not yet implemented). -**`compareVec`** `vector<double>,string` Compares contents of TableBase with a vector of doubles.Result is put in 'output' field of table.If the comparison fails (e.g., due to zero entries), the return value is -1.Arguments: Other vector, comparison_operationOperations: rmsd (for RMSDifference), rmsr (RMSratio ), dotp (Dot product, not yet implemented). -**`clearVec`** `void` Handles request to clear the data vector - - -#### Shared message fields - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. -**`y`** `unsigned int,double` Value of table at specified index - - -## TableEntry - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`value`** `double` Data value in this entry - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) - - -#### Shared message fields - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## Tick - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`dt`** `double` Timestep for this tick -**`localdt`** `double` Timestep for this tick - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`process0`** `PK8ProcInfo` Process for Tick 0 -**`reinit0`** `PK8ProcInfo` Reinit for Tick 0 -**`process1`** `PK8ProcInfo` Process for Tick 1 -**`reinit1`** `PK8ProcInfo` Reinit for Tick 1 -**`process2`** `PK8ProcInfo` Process for Tick 2 -**`reinit2`** `PK8ProcInfo` Reinit for Tick 2 -**`process3`** `PK8ProcInfo` Process for Tick 3 -**`reinit3`** `PK8ProcInfo` Reinit for Tick 3 -**`process4`** `PK8ProcInfo` Process for Tick 4 -**`reinit4`** `PK8ProcInfo` Reinit for Tick 4 -**`process5`** `PK8ProcInfo` Process for Tick 5 -**`reinit5`** `PK8ProcInfo` Reinit for Tick 5 -**`process6`** `PK8ProcInfo` Process for Tick 6 -**`reinit6`** `PK8ProcInfo` Reinit for Tick 6 -**`process7`** `PK8ProcInfo` Process for Tick 7 -**`reinit7`** `PK8ProcInfo` Reinit for Tick 7 -**`process8`** `PK8ProcInfo` Process for Tick 8 -**`reinit8`** `PK8ProcInfo` Reinit for Tick 8 -**`process9`** `PK8ProcInfo` Process for Tick 9 -**`reinit9`** `PK8ProcInfo` Reinit for Tick 9 - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`proc0`** `void` Shared proc/reinit message -**`proc1`** `void` Shared proc/reinit message -**`proc2`** `void` Shared proc/reinit message -**`proc3`** `void` Shared proc/reinit message -**`proc4`** `void` Shared proc/reinit message -**`proc5`** `void` Shared proc/reinit message -**`proc6`** `void` Shared proc/reinit message -**`proc7`** `void` Shared proc/reinit message -**`proc8`** `void` Shared proc/reinit message -**`proc9`** `void` Shared proc/reinit message - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## TriPanel - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`nPts`** `unsigned int` Number of points used by panel to specify geometry -**`nDims`** `unsigned int` Number of Dimensions used by panel to specify geometry -**`numNeighbors`** `unsigned int` Number of Neighbors of panel -**`shapeId`** `unsigned int` Identifier for shape type, as used by Smoldyn -**`coords`** `vector<double>` All the coordinates for the panel. X vector, then Y, then ZZ can be left out for 2-D panels.Z and Y can be left out for 1-D panels. - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`toNeighbor`** `void` Identifies neighbors of the current panel - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`neighbor`** `void` Handles incoming message from neighbor - - -#### Shared message fields - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. -**`x`** `unsigned int,double` x coordinate identified by index -**`y`** `unsigned int,double` y coordinate identified by index -**`z`** `unsigned int,double` z coordinate identified by index - - -## VectorTable - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`xdivs`** `unsigned int` Number of divisions. -**`xmin`** `double` Minimum value in table. -**`xmax`** `double` Maximum value in table. -**`invdx`** `double` Maximum value in table. -**`table`** `vector<double>` The lookup table. - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) - - -#### Shared message fields - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. -**`lookupvalue`** `double,double` Lookup function that performs interpolation to return a value. -**`lookupindex`** `unsigned int,double` Lookup function that returns value by index. - - -## ZBufPool - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`n`** `double` Number of molecules in pool -**`nInit`** `double` Initial value of number of molecules in pool -**`diffConst`** `double` Diffusion constant of molecule -**`conc`** `double` Concentration of molecules in this pool -**`concInit`** `double` Initial value of molecular concentration in pool -**`size`** `double` Size of compartment. Units are SI. Utility field, the actual size info is stored on a volume mesh entry in the parent compartment.This is hooked up by a message. If the message isn'tavailable size is just taken as 1 -**`speciesId`** `unsigned int` Species identifier for this mol pool. Eventually link to ontology. - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`nOut`** `double` Sends out # of molecules in pool on each timestep -**`requestMolWt`** `void` Requests Species object for mol wt -**`requestSize`** `double` Requests Size of pool from matching mesh entry - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`group`** `void` Handle for grouping. Doesn't do anything. -**`reacDest`** `double,double` Handles reaction input -**`process`** `void` Handles process call -**`reinit`** `void` Handles reinit call -**`handleMolWt`** `double` Separate finfo to assign molWt, and consequently diffusion const.Should only be used in SharedMsg with species. -**`remesh`** `double,unsigned int,unsigned int,vector<unsigned int>,vector<double>` Handle commands to remesh the pool. This may involve changing the number of pool entries, as well as changing their volumes - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`reac`** `void` Connects to reaction -**`proc`** `void` Shared message for process and reinit -**`species`** `void` Shared message for connecting to species objects -**`mesh`** `void` Shared message for dealing with mesh operations - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## ZEnz - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`Km`** `double` Michaelis-Menten constant in SI conc units (milliMolar) -**`numKm`** `double` Michaelis-Menten constant in number units, volume dependent -**`kcat`** `double` Forward rate constant for enzyme, units 1/sec -**`numSubstrates`** `unsigned int` Number of substrates in this MM reaction. Usually 1.Does not include the enzyme itself -**`k1`** `double` Forward reaction from enz + sub to complex -**`k2`** `double` Reverse reaction from complex to enz + sub -**`k3`** `double` Forward rate constant from complex to product + enz -**`ratio`** `double` Ratio of k2/k3 -**`concK1`** `double` K1 expressed in concentration (1/millimolar.sec) units - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`toSub`** `double,double` Sends out increment of molecules on product each timestep -**`toPrd`** `double,double` Sends out increment of molecules on product each timestep -**`toEnz`** `double,double` Sends out increment of molecules on product each timestep -**`toCplx`** `double,double` Sends out increment of molecules on product each timestep - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`enzDest`** `double` Handles # of molecules of Enzyme -**`subDest`** `double` Handles # of molecules of substrate -**`prdDest`** `double` Handles # of molecules of product. Dummy. -**`process`** `void` Handles process call -**`reinit`** `void` Handles reinit call -**`remesh`** `void` Tells the MMEnz to recompute its numKm after remeshing -**`enzDest`** `double` Handles # of molecules of Enzyme -**`cplxDest`** `double` Handles # of molecules of enz-sub complex - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`sub`** `void` Connects to substrate molecule -**`prd`** `void` Connects to product molecule -**`proc`** `void` Shared message for process and reinit -**`enz`** `void` Connects to enzyme pool -**`cplx`** `void` Connects to enz-sub complex pool - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## ZFuncPool - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`n`** `double` Number of molecules in pool -**`nInit`** `double` Initial value of number of molecules in pool -**`diffConst`** `double` Diffusion constant of molecule -**`conc`** `double` Concentration of molecules in this pool -**`concInit`** `double` Initial value of molecular concentration in pool -**`size`** `double` Size of compartment. Units are SI. Utility field, the actual size info is stored on a volume mesh entry in the parent compartment.This is hooked up by a message. If the message isn'tavailable size is just taken as 1 -**`speciesId`** `unsigned int` Species identifier for this mol pool. Eventually link to ontology. - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`nOut`** `double` Sends out # of molecules in pool on each timestep -**`requestMolWt`** `void` Requests Species object for mol wt -**`requestSize`** `double` Requests Size of pool from matching mesh entry - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`group`** `void` Handle for grouping. Doesn't do anything. -**`reacDest`** `double,double` Handles reaction input -**`process`** `void` Handles process call -**`reinit`** `void` Handles reinit call -**`handleMolWt`** `double` Separate finfo to assign molWt, and consequently diffusion const.Should only be used in SharedMsg with species. -**`remesh`** `double,unsigned int,unsigned int,vector<unsigned int>,vector<double>` Handle commands to remesh the pool. This may involve changing the number of pool entries, as well as changing their volumes -**`input`** `double` Handles input to control value of n_ - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`reac`** `void` Connects to reaction -**`proc`** `void` Shared message for process and reinit -**`species`** `void` Shared message for connecting to species objects -**`mesh`** `void` Shared message for dealing with mesh operations - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## ZMMenz - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`Km`** `double` Michaelis-Menten constant in SI conc units (milliMolar) -**`numKm`** `double` Michaelis-Menten constant in number units, volume dependent -**`kcat`** `double` Forward rate constant for enzyme, units 1/sec -**`numSubstrates`** `unsigned int` Number of substrates in this MM reaction. Usually 1.Does not include the enzyme itself - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`toSub`** `double,double` Sends out increment of molecules on product each timestep -**`toPrd`** `double,double` Sends out increment of molecules on product each timestep - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`enzDest`** `double` Handles # of molecules of Enzyme -**`subDest`** `double` Handles # of molecules of substrate -**`prdDest`** `double` Handles # of molecules of product. Dummy. -**`process`** `void` Handles process call -**`reinit`** `void` Handles reinit call -**`remesh`** `void` Tells the MMEnz to recompute its numKm after remeshing - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`sub`** `void` Connects to substrate molecule -**`prd`** `void` Connects to product molecule -**`proc`** `void` Shared message for process and reinit - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## ZPool - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`n`** `double` Number of molecules in pool -**`nInit`** `double` Initial value of number of molecules in pool -**`diffConst`** `double` Diffusion constant of molecule -**`conc`** `double` Concentration of molecules in this pool -**`concInit`** `double` Initial value of molecular concentration in pool -**`size`** `double` Size of compartment. Units are SI. Utility field, the actual size info is stored on a volume mesh entry in the parent compartment.This is hooked up by a message. If the message isn'tavailable size is just taken as 1 -**`speciesId`** `unsigned int` Species identifier for this mol pool. Eventually link to ontology. - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`nOut`** `double` Sends out # of molecules in pool on each timestep -**`requestMolWt`** `void` Requests Species object for mol wt -**`requestSize`** `double` Requests Size of pool from matching mesh entry - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`group`** `void` Handle for grouping. Doesn't do anything. -**`reacDest`** `double,double` Handles reaction input -**`process`** `void` Handles process call -**`reinit`** `void` Handles reinit call -**`handleMolWt`** `double` Separate finfo to assign molWt, and consequently diffusion const.Should only be used in SharedMsg with species. -**`remesh`** `double,unsigned int,unsigned int,vector<unsigned int>,vector<double>` Handle commands to remesh the pool. This may involve changing the number of pool entries, as well as changing their volumes - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`reac`** `void` Connects to reaction -**`proc`** `void` Shared message for process and reinit -**`species`** `void` Shared message for connecting to species objects -**`mesh`** `void` Shared message for dealing with mesh operations - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## ZReac - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`kf`** `double` Forward rate constant, in # units -**`kb`** `double` Reverse rate constant, in # units -**`Kf`** `double` Forward rate constant, in concentration units -**`Kb`** `double` Reverse rate constant, in concentration units -**`numSubstrates`** `unsigned int` Number of substrates of reaction -**`numProducts`** `unsigned int` Number of products of reaction - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`toSub`** `double,double` Sends out increment of molecules on product each timestep -**`toPrd`** `double,double` Sends out increment of molecules on product each timestep - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`subDest`** `double` Handles # of molecules of substrate -**`prdDest`** `double` Handles # of molecules of product -**`process`** `void` Handles process call -**`reinit`** `void` Handles reinit call -**`remesh`** `void` Tells the reac to recompute its numRates, as remeshing has happened - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`sub`** `void` Connects to substrate pool -**`prd`** `void` Connects to substrate pool -**`proc`** `void` Shared message for process and reinit - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## ZombieBufPool - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`n`** `double` Number of molecules in pool -**`nInit`** `double` Initial value of number of molecules in pool -**`diffConst`** `double` Diffusion constant of molecule -**`conc`** `double` Concentration of molecules in this pool -**`concInit`** `double` Initial value of molecular concentration in pool -**`size`** `double` Size of compartment. Units are SI. Utility field, the actual size info is stored on a volume mesh entry in the parent compartment.This is hooked up by a message. If the message isn'tavailable size is just taken as 1 -**`speciesId`** `unsigned int` Species identifier for this mol pool. Eventually link to ontology. - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`nOut`** `double` Sends out # of molecules in pool on each timestep -**`requestMolWt`** `void` Requests Species object for mol wt -**`requestSize`** `double` Requests Size of pool from matching mesh entry - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`group`** `void` Handle for grouping. Doesn't do anything. -**`reacDest`** `double,double` Handles reaction input -**`process`** `void` Handles process call -**`reinit`** `void` Handles reinit call -**`handleMolWt`** `double` Separate finfo to assign molWt, and consequently diffusion const.Should only be used in SharedMsg with species. -**`remesh`** `double,unsigned int,unsigned int,vector<unsigned int>,vector<double>` Handle commands to remesh the pool. This may involve changing the number of pool entries, as well as changing their volumes - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`reac`** `void` Connects to reaction -**`proc`** `void` Shared message for process and reinit -**`species`** `void` Shared message for connecting to species objects -**`mesh`** `void` Shared message for dealing with mesh operations - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## ZombieCaConc - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`Ca`** `double` Calcium concentration. -**`CaBasal`** `double` Basal Calcium concentration. -**`Ca_base`** `double` Basal Calcium concentration, synonym for CaBasal -**`tau`** `double` Settling time for Ca concentration -**`B`** `double` Volume scaling factor -**`thick`** `double` Thickness of Ca shell. -**`ceiling`** `double` Ceiling value for Ca concentration. If Ca > ceiling, Ca = ceiling. If ceiling <= 0.0, there is no upper limit on Ca concentration value. -**`floor`** `double` Floor value for Ca concentration. If Ca < floor, Ca = floor - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`concOut`** `double` Concentration of Ca in pool - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`process`** `void` Handles process call -**`reinit`** `void` Handles reinit call -**`current`** `double` Calcium Ion current, due to be converted to conc. -**`currentFraction`** `double,double` Fraction of total Ion current, that is carried by Ca2+. -**`increase`** `double` Any input current that increases the concentration. -**`decrease`** `double` Any input current that decreases the concentration. -**`basal`** `double` Synonym for assignment of basal conc. - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`proc`** `void` Shared message to receive Process message from scheduler - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## ZombieCompartment - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`Vm`** `double` membrane potential -**`Cm`** `double` Membrane capacitance -**`Em`** `double` Resting membrane potential -**`Im`** `double` Current going through membrane -**`inject`** `double` Current injection to deliver into compartment -**`initVm`** `double` Initial value for membrane potential -**`Rm`** `double` Membrane resistance -**`Ra`** `double` Axial resistance of compartment -**`diameter`** `double` Diameter of compartment -**`length`** `double` Length of compartment -**`x0`** `double` X coordinate of start of compartment -**`y0`** `double` Y coordinate of start of compartment -**`z0`** `double` Z coordinate of start of compartment -**`x`** `double` x coordinate of end of compartment -**`y`** `double` y coordinate of end of compartment -**`z`** `double` z coordinate of end of compartment - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`VmOut`** `double` Sends out Vm value of compartment on each timestep -**`axialOut`** `double` Sends out Vm value of compartment to adjacent compartments,on each timestep -**`raxialOut`** `double,double` Sends out Raxial information on each timestep, fields are Ra and Vm - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`injectMsg`** `double` The injectMsg corresponds to the INJECT message in the GENESIS compartment. Unlike the 'inject' field, any value assigned by handleInject applies only for a single timestep.So it needs to be updated every dt for a steady (or varying)injection current -**`randInject`** `double,double` Sends a random injection current to the compartment. Must beupdated each timestep.Arguments to randInject are probability and current. -**`injectMsg`** `double` The injectMsg corresponds to the INJECT message in the GENESIS compartment. Unlike the 'inject' field, any value assigned by handleInject applies only for a single timestep.So it needs to be updated every dt for a steady (or varying)injection current -**`cable`** `void` Message for organizing compartments into groups, calledcables. Doesn't do anything. -**`process`** `void` Handles 'process' call -**`reinit`** `void` Handles 'reinit' call -**`initProc`** `void` Handles Process call for the 'init' phase of the Compartment calculations. These occur as a separate Tick cycle from the regular proc cycle, and should be called before the proc msg. -**`initReinit`** `void` Handles Reinit call for the 'init' phase of the Compartment calculations. -**`handleChannel`** `double,double` Handles conductance and Reversal potential arguments from Channel -**`handleRaxial`** `double,double` Handles Raxial info: arguments are Ra and Vm. -**`handleAxial`** `double` Handles Axial information. Argument is just Vm. - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`proc`** `void` This is a shared message to receive Process messages from the scheduler objects. The Process should be called _second_ in each clock tick, after the Init message.The first entry in the shared msg is a MsgDest for the Process operation. It has a single argument, ProcInfo, which holds lots of information about current time, thread, dt and so on. The second entry is a MsgDest for the Reinit operation. It also uses ProcInfo. -**`init`** `void` This is a shared message to receive Init messages from the scheduler objects. Its job is to separate the compartmental calculations from the message passing. It doesn't really need to be shared, as it does not use the reinit part, but the scheduler objects expect this form of message for all scheduled output. The first entry is a MsgDest for the Process operation. It has a single argument, ProcInfo, which holds lots of information about current time, thread, dt and so on. The second entry is a dummy MsgDest for the Reinit operation. It also uses ProcInfo. -**`channel`** `void` This is a shared message from a compartment to channels. The first entry is a MsgDest for the info coming from the channel. It expects Gk and Ek from the channel as args. The second entry is a MsgSrc sending Vm -**`axial`** `void` This is a shared message between asymmetric compartments. axial messages (this kind) connect up to raxial messages (defined below). The soma should use raxial messages to connect to the axial message of all the immediately adjacent dendritic compartments.This puts the (low) somatic resistance in series with these dendrites. Dendrites should then use raxial messages toconnect on to more distal dendrites. In other words, raxial messages should face outward from the soma. The first entry is a MsgSrc sending Vm to the axialFuncof the target compartment. The second entry is a MsgDest for the info coming from the other compt. It expects Ra and Vm from the other compt as args. Note that the message is named after the source type. -**`raxial`** `void` This is a raxial shared message between asymmetric compartments. The first entry is a MsgDest for the info coming from the other compt. It expects Vm from the other compt as an arg. The second is a MsgSrc sending Ra and Vm to the raxialFunc of the target compartment. - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## ZombieEnz - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`Km`** `double` Michaelis-Menten constant in SI conc units (milliMolar) -**`numKm`** `double` Michaelis-Menten constant in number units, volume dependent -**`kcat`** `double` Forward rate constant for enzyme, units 1/sec -**`numSubstrates`** `unsigned int` Number of substrates in this MM reaction. Usually 1.Does not include the enzyme itself -**`k1`** `double` Forward reaction from enz + sub to complex -**`k2`** `double` Reverse reaction from complex to enz + sub -**`k3`** `double` Forward rate constant from complex to product + enz -**`ratio`** `double` Ratio of k2/k3 -**`concK1`** `double` K1 expressed in concentration (1/millimolar.sec) units - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`toSub`** `double,double` Sends out increment of molecules on product each timestep -**`toPrd`** `double,double` Sends out increment of molecules on product each timestep -**`toEnz`** `double,double` Sends out increment of molecules on product each timestep -**`toCplx`** `double,double` Sends out increment of molecules on product each timestep - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`enzDest`** `double` Handles # of molecules of Enzyme -**`subDest`** `double` Handles # of molecules of substrate -**`prdDest`** `double` Handles # of molecules of product. Dummy. -**`process`** `void` Handles process call -**`reinit`** `void` Handles reinit call -**`remesh`** `void` Tells the MMEnz to recompute its numKm after remeshing -**`enzDest`** `double` Handles # of molecules of Enzyme -**`cplxDest`** `double` Handles # of molecules of enz-sub complex - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`sub`** `void` Connects to substrate molecule -**`prd`** `void` Connects to product molecule -**`proc`** `void` Shared message for process and reinit -**`enz`** `void` Connects to enzyme pool -**`cplx`** `void` Connects to enz-sub complex pool - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## ZombieFuncPool - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`n`** `double` Number of molecules in pool -**`nInit`** `double` Initial value of number of molecules in pool -**`diffConst`** `double` Diffusion constant of molecule -**`conc`** `double` Concentration of molecules in this pool -**`concInit`** `double` Initial value of molecular concentration in pool -**`size`** `double` Size of compartment. Units are SI. Utility field, the actual size info is stored on a volume mesh entry in the parent compartment.This is hooked up by a message. If the message isn'tavailable size is just taken as 1 -**`speciesId`** `unsigned int` Species identifier for this mol pool. Eventually link to ontology. - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`nOut`** `double` Sends out # of molecules in pool on each timestep -**`requestMolWt`** `void` Requests Species object for mol wt -**`requestSize`** `double` Requests Size of pool from matching mesh entry - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`group`** `void` Handle for grouping. Doesn't do anything. -**`reacDest`** `double,double` Handles reaction input -**`process`** `void` Handles process call -**`reinit`** `void` Handles reinit call -**`handleMolWt`** `double` Separate finfo to assign molWt, and consequently diffusion const.Should only be used in SharedMsg with species. -**`remesh`** `double,unsigned int,unsigned int,vector<unsigned int>,vector<double>` Handle commands to remesh the pool. This may involve changing the number of pool entries, as well as changing their volumes -**`input`** `double` Handles input to control value of n_ - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`reac`** `void` Connects to reaction -**`proc`** `void` Shared message for process and reinit -**`species`** `void` Shared message for connecting to species objects -**`mesh`** `void` Shared message for dealing with mesh operations - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## ZombieHHChannel - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`Gbar`** `double` Maximal channel conductance -**`Ek`** `double` Reversal potential of channel -**`Gk`** `double` Channel conductance variable -**`Ik`** `double` Channel current variable -**`Xpower`** `double` Power for X gate -**`Ypower`** `double` Power for Y gate -**`Zpower`** `double` Power for Z gate -**`instant`** `int` Bitmapped flag: bit 0 = Xgate, bit 1 = Ygate, bit 2 = ZgateWhen true, specifies that the lookup table value should beused directly as the state of the channel, rather than usedas a rate term for numerical integration for the state -**`X`** `double` State variable for X gate -**`Y`** `double` State variable for Y gate -**`Z`** `double` State variable for Y gate -**`useConcentration`** `int` Flag: when true, use concentration message rather than Vm tocontrol Z gate - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`channelOut`** `double,double` Sends channel variables Gk and Ek to compartment -**`permeability`** `double` Conductance term going out to GHK object -**`IkOut`** `double` Channel current. This message typically goes to concenobjects that keep track of ion concentration. - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`Vm`** `double` Handles Vm message coming in from compartment -**`Vm`** `double` Handles Vm message coming in from compartment -**`process`** `void` Handles process call -**`reinit`** `void` Handles reinit call -**`concen`** `double` Incoming message from Concen object to specific conc to usein the Z gate calculations -**`createGate`** `string` Function to create specified gate.Argument: Gate type [X Y Z] - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`channel`** `void` This is a shared message to couple channel to compartment. The first entry is a MsgSrc to send Gk and Ek to the compartment The second entry is a MsgDest for Vm from the compartment. -**`ghk`** `void` Message to Goldman-Hodgkin-Katz object -**`proc`** `void` This is a shared message to receive Process message from thescheduler. The first entry is a MsgDest for the Process operation. It has a single argument, ProcInfo, which holds lots of information about current time, thread, dt andso on. - The second entry is a MsgDest for the Reinit operation. It also uses ProcInfo. - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## ZombieMMenz - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`Km`** `double` Michaelis-Menten constant in SI conc units (milliMolar) -**`numKm`** `double` Michaelis-Menten constant in number units, volume dependent -**`kcat`** `double` Forward rate constant for enzyme, units 1/sec -**`numSubstrates`** `unsigned int` Number of substrates in this MM reaction. Usually 1.Does not include the enzyme itself - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`toSub`** `double,double` Sends out increment of molecules on product each timestep -**`toPrd`** `double,double` Sends out increment of molecules on product each timestep - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`enzDest`** `double` Handles # of molecules of Enzyme -**`subDest`** `double` Handles # of molecules of substrate -**`prdDest`** `double` Handles # of molecules of product. Dummy. -**`process`** `void` Handles process call -**`reinit`** `void` Handles reinit call -**`remesh`** `void` Tells the MMEnz to recompute its numKm after remeshing - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`sub`** `void` Connects to substrate molecule -**`prd`** `void` Connects to product molecule -**`proc`** `void` Shared message for process and reinit - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## ZombiePool - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`n`** `double` Number of molecules in pool -**`nInit`** `double` Initial value of number of molecules in pool -**`diffConst`** `double` Diffusion constant of molecule -**`conc`** `double` Concentration of molecules in this pool -**`concInit`** `double` Initial value of molecular concentration in pool -**`size`** `double` Size of compartment. Units are SI. Utility field, the actual size info is stored on a volume mesh entry in the parent compartment.This is hooked up by a message. If the message isn'tavailable size is just taken as 1 -**`speciesId`** `unsigned int` Species identifier for this mol pool. Eventually link to ontology. - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`nOut`** `double` Sends out # of molecules in pool on each timestep -**`requestMolWt`** `void` Requests Species object for mol wt -**`requestSize`** `double` Requests Size of pool from matching mesh entry - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`group`** `void` Handle for grouping. Doesn't do anything. -**`reacDest`** `double,double` Handles reaction input -**`process`** `void` Handles process call -**`reinit`** `void` Handles reinit call -**`handleMolWt`** `double` Separate finfo to assign molWt, and consequently diffusion const.Should only be used in SharedMsg with species. -**`remesh`** `double,unsigned int,unsigned int,vector<unsigned int>,vector<double>` Handle commands to remesh the pool. This may involve changing the number of pool entries, as well as changing their volumes - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`reac`** `void` Connects to reaction -**`proc`** `void` Shared message for process and reinit -**`species`** `void` Shared message for connecting to species objects -**`mesh`** `void` Shared message for dealing with mesh operations - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## ZombieReac - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`kf`** `double` Forward rate constant, in # units -**`kb`** `double` Reverse rate constant, in # units -**`Kf`** `double` Forward rate constant, in concentration units -**`Kb`** `double` Reverse rate constant, in concentration units -**`numSubstrates`** `unsigned int` Number of substrates of reaction -**`numProducts`** `unsigned int` Number of products of reaction - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`toSub`** `double,double` Sends out increment of molecules on product each timestep -**`toPrd`** `double,double` Sends out increment of molecules on product each timestep - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`subDest`** `double` Handles # of molecules of substrate -**`prdDest`** `double` Handles # of molecules of product -**`process`** `void` Handles process call -**`reinit`** `void` Handles reinit call -**`remesh`** `void` Tells the reac to recompute its numRates, as remeshing has happened - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`sub`** `void` Connects to substrate pool -**`prd`** `void` Connects to substrate pool -**`proc`** `void` Shared message for process and reinit - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## ZombieSumFunc - -#### Value fields - -Field Type Description ----- ---- ---- -**`this`** `Neutral` Access function for entire object -**`name`** `string` Name of object -**`me`** `ObjId` ObjId for current object -**`parent`** `ObjId` Parent ObjId for current object -**`children`** `vector<Id>` vector of ObjIds listing all children of current object -**`path`** `string` text path for object -**`class`** `string` Class Name of object -**`linearSize`** `unsigned int` # of entries on Element: product of all dimensions.Note that on a FieldElement this includes field entries.If field entries form a ragged array, then the linearSize may begreater than the actual number of allocated entries, since thelastDimension is at least as big as the largest ragged array. -**`objectDimensions`** `vector<unsigned int>` Array Dimensions of object on the Element.This includes the lastDimension (field dimension) if present. -**`lastDimension`** `unsigned int` Max size of the last dimension of the object.In the case of regular objects, resizing this value resizesthe last dimensionIn the case of ragged arrays (such as synapses), resizing thisvalue resizes the upper limit of the last dimension,but cannot make it smaller than the biggest ragged array size.Normally is only assigned from Shell::doSyncDataHandler. -**`localNumField`** `unsigned int` For a FieldElement: number of entries of self on current nodeFor a regular Element: zero. -**`pathIndices`** `vector< vector<unsigned int> >` Indices of the entire path hierarchy leading up to this Object. -**`msgOut`** `vector<ObjId>` Messages going out from this Element -**`msgIn`** `vector<ObjId>` Messages coming in to this Element -**`result`** `double` outcome of summation - - -#### Source message fields - -Field Type Description ----- ---- ---- -**`childMsg`** `int` Message to child Elements -**`output`** `double` Sends out sum on each timestep - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`parentMsg`** `int` Message from Parent Element(s) -**`input`** `double` Handles input values -**`process`** `void` Handles process call -**`reinit`** `void` Handles reinit call - - -#### Shared message fields - -Field Type Description ----- ---- ---- -**`proc`** `void` Shared message for process and reinit - - -#### Lookup fields - -Field Type Description ----- ---- ---- -**`neighbours`** `string,vector<Id>` Ids of Elements connected this Element on specified field. - - -## testSched - -#### Value fields - - -#### Source message fields - - -#### Destination message fields - -Field Type Description ----- ---- ---- -**`process`** `void` handles process call - - -#### Shared message fields - - -#### Lookup fields - - -# MOOSE Functions - - -## ce -Set the current working element. 'ce' is an alias of this function - - - -## connect -connect(src, src_field, dest, dest_field, message_type) -> bool - - - -Create a message between `src_field` on `src` object to `dest_field` - -on `dest` object. - - - -#### Parameters - -src : element - -the source object - -src_field : str - -the source field name. Fields listed under `srcFinfo` and - -`sharedFinfo` qualify for this. - -dest : element - -the destination object. - -dest_field : str - -the destination field name. Fields listed under `destFinfo` - -and `sharedFinfo` qualify for this. - -message_type : str (optional) - -Type of the message. Can be `Single`, `OneToOne`, `OneToAll`. - -If not specified, it defaults to `Single`. - - - -#### Returns - -element of the message-manager for the newly created message. - - - -#### Example - -Connect the output of a pulse generator to the input of a spike - -generator: - - - -~~~~ - ->>> pulsegen = moose.PulseGen('pulsegen') - ->>> spikegen = moose.SpikeGen('spikegen') - ->>> moose.connect(pulsegen, 'outputOut', spikegen, 'Vm') - -1 - -~~~~ - - - -## copy -copy(src, dest, name, n, toGlobal, copyExtMsg) -> bool - -Make copies of a moose object. - -#### Parameters - -src : ematrix, element or str - -source object. - -dest : ematrix, element or str - -Destination object to copy into. - -name : str - -Name of the new object. If omitted, name of the original will be used. - -n : int - -Number of copies to make. - -toGlobal: int - -Relevant for parallel environments only. If false, the copies will - -reside on local node, otherwise all nodes get the copies. - -copyExtMsg: int - -If true, messages to/from external objects are also copied. - - - -#### Returns - -ematrix of the copied object - - - -## delete -moose.delete(id) - - - -Delete the underlying moose object. This does not delete any of the - -Python objects referring to this ematrix but does invalidate them. Any - -attempt to access them will raise a ValueError. - - - -Parameters - -#### - -id : ematrix - -ematrix of the object to be deleted. - - - -## element -moose.element(arg) -> moose object - - - -Convert a path or an object to the appropriate builtin moose class - -instance - -#### Parameters - -arg: str or ematrix or moose object - -path of the moose element to be converted or another element (possibly - -available as a superclass instance). - - - -#### Returns - -An element of the moose builtin class the specified object belongs - -to. - - - -## exists -True if there is an object with specified path. - - - -## getCwe -Get the current working element. 'pwe' is an alias of this function. - - - -## getField -getField(element, field, fieldtype) -- Get specified field of specified type from object ematrix. - - - -## getFieldDict -getFieldDict(className, finfoType) -> dict - - - -Get dictionary of field names and types for specified class. - -#### Parameters - -className : str - -MOOSE class to find the fields of. - -finfoType : str (optional) - -Finfo type of the fields to find. If empty or not specified, all - -fields will be retrieved. - -note: This behaviour is different from `getFieldNames` where only - -`valueFinfo`s are returned when `finfoType` remains unspecified. - - - -#### Example - -List all the source fields on class Neutral: - -~~~~ - ->>> moose.getFieldDict('Neutral', 'srcFinfo') - -{'childMsg': 'int'} - -~~~~ - - - -## getFieldNames -getFieldNames(className, finfoType='valueFinfo') -> tuple - - - -Get a tuple containing the name of all the fields of `finfoType` - -kind. - - - -#### Parameters - -className : string - -Name of the class to look up. - -finfoType : string - -The kind of field (`valueFinfo`, `srcFinfo`, `destFinfo`, - -`lookupFinfo`, `fieldElementFinfo`.). - - - -## isRunning -True if the simulation is currently running. - - - -## loadModel -loadModel(filename, modelpath, solverclass) -> moose.ematrix - - - -Load model from a file to a specified path. - - - - - -#### Parameters - -filename : str - -model description file. - -modelpath : str - -moose path for the top level element of the model to be created. - -solverclass : str - -(optional) solver type to be used for simulating the model. - - - -#### Returns - -ematrix instance refering to the loaded model container. - - - -## move -Move a ematrix object to a destination. - - - -## quit -Finalize MOOSE threads and quit MOOSE. This is made available for debugging purpose only. It will automatically get called when moose module is unloaded. End user should not use this function. - - - -## reinit -reinit() -> None - - - -Reinitialize simulation. - - - -This function (re)initializes moose simulation. It must be called - -before you start the simulation (see moose.start). If you want to - -continue simulation after you have called moose.reinit() and - -moose.start(), you must NOT call moose.reinit() again. Calling - -moose.reinit() again will take the system back to initial setting - -(like clear out all data recording tables, set state variables to - -their initial values, etc. - - - -## saveModel -saveModel(source, fileame) - - - -Save model rooted at `source` to file `filename`. - - - - - -#### Parameters - -source: ematrix or element or str - -root of the model tree - - - -filename: str - -destination file to save the model in. - - - -#### Returns - -None - - - -## seed -moose.seed(seedvalue) -> None - - - -Reseed MOOSE random number generator. - - - - - -#### Parameters - -seed: int - -Optional value to use for seeding. If 0, a random seed is - -automatically created using the current system time and other - -information. If not specified, it defaults to 0. - - - -## setClock -Set the dt of a clock. - - - -## setCwe -Set the current working element. 'ce' is an alias of this function - - - -## start -start(t) -> None - - - -Run simulation for `t` time. Advances the simulator clock by `t` - -time. - - - -After setting up a simulation, YOU MUST CALL MOOSE.REINIT() before - -CALLING MOOSE.START() TO EXECUTE THE SIMULATION. Otherwise, the - -simulator behaviour will be undefined. Once moose.reinit() has been - -called, you can call moose.start(t) as many time as you like. This - -will continue the simulation from the last state for `t` time. - - - - - -#### Parameters - -t : float - -duration of simulation. - - - -#### Returns - -None - - - -#### See also - -moose.reinit : (Re)initialize simulation - - - -## stop -Stop simulation - - - -## useClock -Schedule objects on a specified clock - - - -## wildcardFind -moose.wildcardFind(expression) -> tuple of ematrices. - - - -Find an object by wildcard. - - - - - -#### Parameters - -expression: str - -MOOSE allows wildcard expressions of the form - -{PATH}/{WILDCARD}[{CONDITION}] - -where {PATH} is valid path in the element tree. - -{WILDCARD} can be `#` or `##`. - -`#` causes the search to be restricted to the children of the - -element specified by {PATH}. - -`##` makes the search to recursively go through all the descendants - -of the {PATH} element. - -{CONDITION} can be - -TYPE={CLASSNAME} : an element satisfies this condition if it is of - -class {CLASSNAME}. - -ISA={CLASSNAME} : alias for TYPE={CLASSNAME} - -CLASS={CLASSNAME} : alias for TYPE={CLASSNAME} - -FIELD({FIELDNAME}){OPERATOR}{VALUE} : compare field {FIELDNAME} with - -{VALUE} by {OPERATOR} where {OPERATOR} is a comparison operator (=, - -!=, >, <, >=, <=). - -For example, /mymodel/##[FIELD(Vm)>=-65] will return a list of all - -the objects under /mymodel whose Vm field is >= -65. - - - -## writeSBML -Export biochemical model to an SBML file. - - - -## doc -Display the documentation for class or field in a class. - - - -#### Parameters - -arg: str or moose class or instance of melement or instance of ematrix - - - -argument can be a string specifying a moose class name and a field - -name separated by a dot. e.g., 'Neutral.name'. Prepending `moose.` - -is allowed. Thus moose.doc('moose.Neutral.name') is equivalent to - -the above. - - - -argument can also be string specifying just a moose class name or - -a moose class or a moose object (instance of melement or ematrix - -or there subclasses). In that case, the builtin documentation for - -the corresponding moose class is displayed. - - - -paged: bool - - - -Whether to display the docs via builtin pager or print and - -exit. If not specified, it defaults to False and moose.doc(xyz) - -will print help on xyz and return control to command line. - - - -## getfielddoc -Get the documentation for field specified by - -tokens. - - - -tokens should be a two element list/tuple where first element is a - -MOOSE class name and second is the field name. - - - -## getmoosedoc -Retrieve MOOSE builtin documentation for tokens. - - - -tokens is a list or tuple containing: (classname, [fieldname]) - - - -## le -List elements. - - - -#### Parameters - -el: str/melement/ematrix/None - -The element or the path under which to look. If `None`, children - -of current working element are displayed. - - - -## listmsg -Return a list containing the incoming and outgoing messages of - -the given object. - - - -## pwe -Print present working element. Convenience function for GENESIS - -users. - - - -## showfield -Show the fields of the element, their data types and values in - -human readable format. Convenience function for GENESIS users. - - - -Parameters: - - - -elem: str/melement instance - -Element or path of an existing element. - - - -field: str - -Field to be displayed. If '*', all fields are displayed. - - - -showtype: bool - -If True show the data type of each field. - - - -## showfields -Convenience function. Should be deprecated if nobody uses it. - - - -## showmsg -Prints the incoming and outgoing messages of the given object. - - - -## syncDataHandler -Synchronize data handlers for target. - - - -Parameter: - -target -- target element or path or ematrix. - diff --git a/docs/user/markdown/pymoose2walkthrough.markdown b/docs/user/markdown/pymoose2walkthrough.markdown deleted file mode 100644 index 7fe0b52d689ebcfeff6f3a56233f0361e4569801..0000000000000000000000000000000000000000 --- a/docs/user/markdown/pymoose2walkthrough.markdown +++ /dev/null @@ -1,714 +0,0 @@ -% Getting started with python scripting for MOOSE -% Subhasis Ray -% December 12, 2012 - -# Introduction - -This document describes how to use the `moose` module in Python -scripts or in an interactive Python shell. It aims to give you -enough overview to help you start scripting using MOOSE and extract -farther information that may be required for advanced work. -Knowledge of Python or programming in general will be helpful. If -you just want to simulate existing models in one of the supported -formats, you can fire the MOOSE GUI and locate the model file using -the `File` menu and load it. The GUI is described -[here](./MooseGuiDocs.html). The example code in the boxes can be -entered in a Python shell. - -# Importing MOOSE and accessing built-in documentation - -In a python script you import modules to access the functionalities -they provide. - -~~~~{.python} - import moose -~~~~ - -This makes the `moose` module available for use in Python. You can -use Python's built-in `help` function to read the top-level -documentation for the moose module: - -~~~~{.python} - help(moose) -~~~~ - -This will give you an overview of the module. Press `q` to exit -the pager and get back to the interpreter. You can also access the -documentation for individual classes and functions this way. - -~~~~{.python} - help(moose.connect) -~~~~ - -To list the available functions and classes you can use `dir` -function[^1]. - -~~~~{.python} - dir(moose) -~~~~ - -MOOSE has built-in documentation in the C++-source-code independent -of Python. The `moose` module has a separate `doc` function to -extract this documentation. - -~~~~{.python} - moose.doc(moose.Compartment) -~~~~ - -The class level documentation will show whatever the -author/maintainer of the class wrote for documentation followed by -a list of various kinds of fields and their data types. This can be -very useful in an interactive session. - -Each field can have its own detailed documentation, too. - -~~~~{.python} - moose.doc('Compartment.Rm') -~~~~ - -Note that you need to put the class-name followed by dot followed -by field-name within quotes. Otherwise, `moose.doc` will receive -the field value as parameter and get confused. - -# Creating objects and traversing the object hierarchy - -Different types of biological entities like neurons, enzymes, etc -are represented by classes and individual instances of those types -are objects of those classes. Objects are the building-blocks of -models in MOOSE. We call MOOSE objects `element` and use object -and element interchangeably in the context of MOOSE. Elements are -conceptually laid out in a tree-like hierarchical structure. If you -are familiar with file system hierarchies in common operating -systems, this should be simple. - -At the top of the object hierarchy sits the `Shell`, equivalent to -the root directory in UNIX-based systems and represented by the -path `/`. You can list the existing objects under `/` using the -`le` function. - -~~~~{.python} - moose.le() -~~~~ - -This shows something like: - -~~~~{.python} - Elements under / - /Msgs - /clock - /classes -~~~~ - -`Msgs`, `clock` and `classes` are predefined objects in -MOOSE. And each object can contain other objects inside them. You -can see them by passing the path of the parent object to `le`. - -Entering: - -~~~~{.python} - moose.le('/clock') -~~~~ - -prints: - -~~~~{.python} - Elements under /clock - /clock/tick[0] -~~~~ - -Now let us create some objects of our own. This can be done by -invoking MOOSE class constructors (just like regular Python -classes). - -~~~~{.python} - model = moose.Neutral('/model') -~~~~ - -The above creates a `Neutral` object named `model`. `Neutral` is -the most basic class in MOOSE. A `Neutral` element can act as a -container for other elements. We can create something under -`model`: - -~~~~{.python} - soma = moose.Compartment('/model/soma') -~~~~ - -Every element has a unique path. This is a concatenation of the -names of all the objects one has to traverse starting with the root -to reach that element. - -~~~~{.python} - print soma.path -~~~~ - -shows you its path: - -~~~~{.python} - /model/soma -~~~~ - -The name of the element can be printed, too. - -~~~~{.python} - print soma.name -~~~~ - -shows: - -~~~~{.python} - soma -~~~~ - -The `Compartment` elements model small portions of a neuron. Some -basic experiments can be carried out using a single compartment. -Let us create another object to act on the `soma`. This will be a -step current generator to inject a current pulse into the soma. - -~~~~{.python} - pulse = moose.PulseGen('/model/pulse') -~~~~ - -You can use `le` at any point to see what is there: - -~~~~{.python} - moose.le('/model') -~~~~ - -will show you: - -~~~~{.python} - Elements under /model - /model/soma - /model/pulse -~~~~ - -And finally, we can create a `Table` to record the time series of -the soma's membrane potential. It is good practice to organize the -data separately from the model. So we do it as below: - -~~~~{.python} - data = moose.Neutral('/data') - vmtab = moose.Table('/data/soma_Vm') -~~~~ - -Now that we have the essential elements for a small model, we can -go on to set the properties of this model and the experimental -protocol. - -# Setting the properties of elements: accessing fields - -Elements have several kinds of fields. The simplest ones are the -`value fields`. These can be accessed like ordinary Python members. -You can list the available value fields using `getFieldNames` -function: - -~~~~{.python} - soma.getFieldNames('valueFinfo') -~~~~ - -Here `valueFinfo` is the type name for value fields. `Finfo` is -short form of *field information*. For each type of field there is -a name ending with `-Finfo`. The above will display the following -list: - -~~~~{.python} - ('this', - 'name', - 'me', - 'parent', - 'children', - 'path', - 'class', - 'linearSize', - 'objectDimensions', - 'lastDimension', - 'localNumField', - 'pathIndices', - 'msgOut', - 'msgIn', - 'Vm', - 'Cm', - 'Em', - 'Im', - 'inject', - 'initVm', - 'Rm', - 'Ra', - 'diameter', - 'length', - 'x0', - 'y0', - 'z0', - 'x', - 'y', - 'z') -~~~~ - -Some of these fields are for internal or advanced use, some give -access to the physical properties of the biological entity we are -trying to model. Now we are interested in `Cm`, `Rm`, `Em` and -`initVm`. In the most basic form, a neuronal compartment acts like -a parallel `RC` circuit with a battery attached. Here `R` and `C` -are resistor and capacitor connected in parallel, and the battery -with voltage `Em` is in series with the resistor, as shown below: - ----- - - - ----- - -The fields are populated with some defaults. - -~~~~{.python} - print soma.Cm, soma.Rm, soma.Vm, soma.Em, soma.initVm -~~~~ - -will give you: - -~~~~{.python} - 1.0 1.0 -0.06 -0.06 -0.06 -~~~~ - -You can set the `Cm` and `Rm` fields to something realistic using -simple assignment (we follow SI unit)[^2]. - -~~~~{.python} - soma.Cm = 1e-9 - soma.Rm = 1e7 - soma.initVm = -0.07 -~~~~ - -Instead of writing print statements for each field, you could use -the utility function showfield to see that the changes took -effect: - -~~~~{.python} - moose.showfield(soma) -~~~~ - -will list most of the fields with their values: - -~~~~{.c} - [ /model/soma ] - diameter = 0.0 - linearSize = 1 - localNumField = 0 - Ra = 1.0 - y0 = 0.0 - Rm = 10000000.0 - inject = 0.0 - Em = -0.06 - initVm = -0.07 - x = 0.0 - path = /model/soma - x0 = 0.0 - z0 = 0.0 - class = Compartment - name = soma - Cm = 1e-09 - Vm = -0.06 - length = 0.0 - Im = 0.0 - y = 0.0 - lastDimension = 0 - z = 0.0 -~~~~{.python} - -Now we can setup the current pulse to be delivered to the soma: - -~~~~{.python} - pulse.delay[0] = 50e-3 - pulse.width[0] = 100e-3 - pulse.level[0] = 1e-9 - pulse.delay[1] = 1e9 -~~~~ - -This tells the pulse generator to create a 100 ms long pulse 50 ms -after the start of the simulation. The amplitude of the pulse is -set to 1 nA. We set the delay for the next pulse to a very large -value (larger than the total simulation time) so that the -stimulation stops after the first pulse. Had we set -`pulse.delay = 0` , it would have generated a pulse train at 50 ms -intervals. - -# Putting them together: setting up connections - -In order for the elements to interact during simulation, we need to -connect them via messages. Elements are connected to each other -using special source and destination fields. These types are named -`srcFinfo` and `destFinfo`. You can query the available source and -destination fields on an element using `getFieldNames` as before. -This time, let us do it another way: by the class name: - -~~~~{.python} - moose.getFieldNames('PulseGen', 'srcFinfo') -~~~~ - -This form has the advantage that you can get information about a -class without creating elements of that class. The above code -shows: - -~~~~{.python} - ('childMsg', 'outputOut') -~~~~ - -Here `childMsg` is a source field that is used by the MOOSE -internals to connect child elements to parent elements. The second -one is of our interest. Check out the built-in documentation here: - -~~~~{.python} - moose.doc('PulseGen.outputOut') -~~~~ - -shows: - -~~~~{.python} - PulseGen.outputOut: double - source field - Current output level. -~~~~ - -so this is the output of the pulse generator and this must be -injected into the `soma` to stimulate it. But where in the `soma` -can we send it? Again, MOOSE has some introspection built in. - -~~~~{.python} - soma.getFieldNames('destFinfo') -~~~~ - -shows: - -~~~~{.python} - ('parentMsg', - 'set_this', - 'get_this', - ... - 'set_z', - 'get_z', - 'injectMsg', - 'randInject', - 'cable', - 'process', - 'reinit', - 'initProc', - 'initReinit', - 'handleChannel', - 'handleRaxial', - 'handleAxial') -~~~~ - -Now that is a long list. But much of it are fields for internal or -special use. Anything that starts with `get_` or `set_` are -internal `destFinfo` used for accessing value fields (we shall use -one of those when setting up data recording). Among the rest -`injectMsg` seems to be the most likely candidate. Use the -`connect` function to connect the pulse generator output to the -soma input: - -~~~~{.python} - m = moose.connect(pulse, 'outputOut', soma, 'injectMsg') -~~~~ - -`connect(source, source_field, dest, dest_field)` creates a -`message` from `source` element's `source_field` field to `dest` -elements `dest_field` field and returns that message. Messages are -also elements. You can print them to see their identity: - -~~~~{.python} - print m -~~~~ - -on my system gives: - -~~~~{.python} - <moose.SingleMsg: id=5, dataId=733, path=/Msgs/singleMsg[733]> -~~~~ - -You can print any element as above and the string representation -will show you the class, two numbers(`id` and `dataId`) uniquely -identifying it among all elements, and its path. You can get some -more information about a message: - -~~~~{.python} - print m.e1.path, m.e2.path, m.srcFieldsOnE1, m.destFieldsOnE2 -~~~~ - -will confirm what you already know: - -~~~~{.python} - /model/pulse /model/soma ('outputOut',) ('injectMsg',) -~~~~ - -A message element has fields `e1` and `e2` referring to the -elements it connects. For single one-directional messages these are -source and destination elements, which are `pulse` and `soma` -respectively. The next two items are lists of the field names which -are connected by this message. - -You could also check which elements are connected to a particular -field: - -~~~~{.python} - print soma.neighbours['injectMsg'] -~~~~ - -shows: - -~~~~{.python} - [<moose.ematrix: class=PulseGen, id=729,path=/model/pulse>] -~~~~ - -Notice that the list contains something called ematrix. We discuss -this [later](#some-more-details). Also `neighbours` is a new kind of field: -`lookupFinfo` which behaves like a dictionary. Next we connect the -table to the soma to retrieve its membrane potential `Vm`. This is -where all those `destFinfo` starting with `get_` or `set_` come in -use. For each value field `X`, there is a `destFinfo` `get_{X}` -to retrieve the value at simulation time. This is used by the table -to record the values `Vm` takes. - -~~~~{.python} - moose.connect(vmtab, 'requestData', soma, 'get_Vm') -~~~~ - -This finishes our model and recording setup. You might be wondering -about the source-destination relationship above. It is natural to -think that `soma` is the source of `Vm` values which should be sent -to `vmtab`. But here `requestData` is a `srcFinfo` acting like a -reply card. This mode of obtaining data is called *pull* -mode.[^3] - -# Scheduling and running the simulation - -With the model all set up, we have to schedule the simulation. -MOOSE has a central clock element (`/clock`) to manage time. Clock -has a set of `Tick` elements under it that take care of advancing -the state of each element with time as the simulation progresses. -Every element to be included in a simulation must be assigned a -tick. Each tick can have a different ticking interval (`dt`) that -allows different elements to be updated at different rates. We -initialize the ticks and set their `dt` values using the `setClock` -function. - -~~~~{.python} - moose.setClock(0, 0.025e-3) - moose.setClock(1, 0.025e-3) - moose.setClock(2, 0.25e-3) -~~~~ - -This will initialize tick #0 and tick #1 with `dt = 25` μs and tick -#2 with `dt = 250` μs. Thus all the elements scheduled on ticks -#0 and 1 will be updated every 25 μs and those on tick #2 -every 250 μs. We use the faster clocks for the model components -where finer timescale is required for numerical accuracy and the -slower clock to sample the values of `Vm`. - -So to assign tick #2 to the table for recording `Vm`, we pass its -whole path to the `useClock` function. - -~~~~{.python} - moose.useClock(2, '/data/soma_Vm', 'process') -~~~~ - -Read this as "use tick # 2 on the element at path `/data/soma_Vm` -to call its `process` method at every step". Every class that is -supposed to update its state or take some action during simulation -implements a `process` method. And in most cases that is the method -we want the ticks to call at every time step. A less common method -is `init`, which is implemented in some classes to interleave -actions or updates that must be executed in a specific -order[^4]. The `Compartment` class is one such case where -a neuronal compartment has to know the `Vm` of its neighboring -compartments before it can calculate its `Vm` for the next step. -This is done with: - -~~~~{.python} - moose.useClock(0, soma.path, 'init') -~~~~ - -Here we used the `path` field instead of writing the path -explicitly. - -Next we assign tick #1 to process method of everything under -`/model`. - -~~~~{.python} - moose.useClock(1, '/model/##', 'process') -~~~~ - -Here the second argument is an example of wild-card path. The `##` -matches everything under the path preceding it at any depth. Thus -if we had some other objects under `/model/soma`, `process` method -of those would also have been scheduled on tick #1. This is very -useful for complex models where it is tedious to scheduled each -element individually. In this case we could have used `/model/#` as -well for the path. This is a single level wild-card which matches -only the children of `/model` but does not go farther down in the -hierarchy. - -Once the elements are assigned ticks, we can put the model to its -initial state using: - -~~~~{.python} - moose.reinit() -~~~~ - -You may remember that we had changed initVm from `-0.06` to `-0.07`. -The reinit call we initialize `Vm` to that value. You can verify -that: - -~~~~{.python} - print soma.Vm -~~~~ - -gives: - -~~~~{.python} - -0.07 -~~~~ - -Finally, we run the simulation for 300 ms: - -~~~~{.python} - moose.start(300e-3) -~~~~ - -The data will be recorded by the `soma_vm` table, which is -referenced by the variable `vmtab`. The `Table` class provides a -numpy array interface to its content. The field is `vec`. So you -can easily plot the membrane potential using the -[matplotlib](http://matplotlib.org/) library. - -~~~~{.python} - import pylab - t = pylab.linspace(0, 300e-3, len(vmtab.vec)) - pylab.plot(t, vmtab.vec) - pylab.show() -~~~~ - -The first line imports the pylab submodule from matplotlib. This -useful for interactive plotting. The second line creates the time -points to match our simulation time and length of the recorded -data. The third line plots the `Vm` and the fourth line makes it -visible. Does the plot match your expectation? - -# Some more details - -## `ematrix`, `melement` and `element` - -MOOSE elements are instances of the class `melement`. -`Compartment`, `PulseGen` and other MOOSE classes are derived -classes of `melement`. All `melement` instances are contained in -array-like structures called `ematrix`. Each `ematrix` object has a -numerical `id_` field uniquely identifying it. An `ematrix` can -have one or more elements. You can create an array of elements: - -~~~~{.python} - comp_array = moose.ematrix('/model/comp', (3,), 'Compartment') -~~~~ - -This tells MOOSE to create an `ematrix` of 3 `Compartment` elements -with path `/model/comp`. For `ematrix` objects with multiple -elements, the index in the `ematrix` is part of the element path. - -~~~~{.python} - print comp_array.path, type(comp_array) -~~~~ - -shows that `comp_array` is an instance of `ematrix` class. You can -loop through the elements in an `ematrix` like a Python list: - -~~~~{.python} - for comp in comp_array: - print comp.path, type(comp) -~~~~ - -shows: - -~~~~{.python} - /model/comp[0] <type 'moose.melement'> - /model/comp[1] <type 'moose.melement'> - /model/comp[2] <type 'moose.melement'> -~~~~ - -Thus elements are instances of class `melement`. All elements in an -`ematrix` share the `id_` of the `ematrix` which can retrieved by -`melement.getId()`. - -A frequent use case is that after loading a model from a file one -knows the paths of various model components but does not know the -appropriate class name for them. For this scenario there is a -function called `element` which converts ("casts" in programming -jargon) a path or any moose object to its proper MOOSE class. You -can create additional references to `soma` in the example this -way: - -~~~~{.python} - x = moose.element('/model/soma') -~~~~ - -Any MOOSE class can be extended in Python. But any additional -attributes added in Python are invisible to MOOSE. So those can be -used for functionalities at the Python level only. You can see -`Demos/squid/squid.py` for an example. - -## `Finfos` - -The following kinds of `Finfo` are accessible in Python - -- **`valueFinfo`** : - simple values. For each readable `valueFinfo` `XYZ` there is a - `destFinfo` `get_XYZ` that can be used for reading the value at run - time. If `XYZ` is writable then there will also be `destFinfo` to - set it: `set_XYZ`. Example: `Compartment.Rm` -- **`lookupFinfo`** : - lookup tables. These fields act like Python dictionaries but - iteration is not supported. Example: `Neutral.neighbours`. -- **`srcFinfo`** : - source of a message. Example: `PulseGen.outputOut`. -- **`destFinfo`** : - destination of a message. Example: `Compartment.injectMsg`. - Apart from being used in setting up messages, these are accessible - as functions from Python. `HHGate.setupAlpha` is an example. -- **`sharedFinfo`** : - a composition of source and destination fields. Example: - `Compartment.channel`. - -# Moving on - -Now you know the basics of pymoose and how to access the help -system. MOOSE is backward compatible with GENESIS and most GENESIS -classes have been reimplemented in MOOSE. There is slight change in -naming (MOOSE uses CamelCase), and setting up messages are -different. But -[GENESIS documentation](http://www.genesis-sim.org/GENESIS/Hyperdoc/Manual.html) -is still a good source for documentation on classes that have been -ported from GENESIS. - -In addition, the `Demos/snippets` directory in your MOOSE -installation has small executable python scripts that show usage of -specific classes or functionalities. Beyond that you can browse the -code in the `Demos` directory to see some more complex models. - -If the built-in MOOSE classes do not satisfy your needs entirely, -you are welcome to add new classes to MOOSE. The -API documentation will help you get started. Finally -you can join the -[moose mailing list](https://lists.sourceforge.net/lists/listinfo/moose-generic) -and request for help. - -[^1]: To list the classes only, use `moose.le('/classes')` - -[^2]: MOOSE is unit agnostic and things should work fine -as long as you use values all converted to a consistent unit -system. - -[^3]: This apparently convoluted implementation is for -performance reason. Can you figure out why? -*Hint: the table is driven by a slower clock than the compartment.* - -[^4]: In principle any function available in a MOOSE class -can be executed periodically this way as long as that class exposes -the function for scheduling following the MOOSE API. So you have to -consult the class' documentation for any nonstandard methods that -can be scheduled this way. diff --git a/docs/user/snippets_tutorial/Building_Simple_Reaction_Model.html b/docs/user/snippets_tutorial/Building_Simple_Reaction_Model.html deleted file mode 100644 index 9523a502e38a436420e91b2332e724ee6cee2786..0000000000000000000000000000000000000000 --- a/docs/user/snippets_tutorial/Building_Simple_Reaction_Model.html +++ /dev/null @@ -1,588 +0,0 @@ -<!DOCTYPE html> -<html> -<head> - -<meta charset="utf-8" /> -<title>Building_Simple_Reaction_Model</title> - -<script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.1.10/require.min.js"></script> -<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script> - -<style type="text/css"> - /*! -* -* Twitter Bootstrap -* -*//*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,*:before,*:after{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff !important}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before,.glyphicon-eur:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;line-height:1.42857143;color:#000;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:hover,a:focus{color:#23527c;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:3px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:2px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:18px;margin-bottom:18px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:normal;line-height:1;color:#777}h1,.h1,h2,.h2,h3,.h3{margin-top:18px;margin-bottom:9px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:9px;margin-bottom:9px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:33px}h2,.h2{font-size:27px}h3,.h3{font-size:23px}h4,.h4{font-size:17px}h5,.h5{font-size:13px}h6,.h6{font-size:12px}p{margin:0 0 9px}.lead{margin-bottom:18px;font-size:14px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:19.5px}}small,.small{font-size:92%}mark,.mark{background-color:#fcf8e3;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:8px;margin:36px 0 18px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:9px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:18px}dt,dd{line-height:1.42857143}dt{font-weight:bold}dd{margin-left:0}@media (min-width:541px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:9px 18px;margin:0 0 18px;font-size:inherit;border-left:5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:18px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:2px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:1px;box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}kbd kbd{padding:0;font-size:100%;font-weight:bold;box-shadow:none}pre{display:block;padding:8.5px;margin:0 0 9px;font-size:12px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:2px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:0;padding-right:0}@media (min-width:768px){.container{width:768px}}@media (min-width:992px){.container{width:940px}}@media (min-width:1200px){.container{width:1140px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:0;padding-right:0}.row{margin-left:0;margin-right:0}.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12{position:relative;min-height:1px;padding-left:0;padding-right:0}.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:18px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}.table-responsive{overflow-x:auto;min-height:.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:13.5px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:18px;font-size:19.5px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:13px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:32px;padding:6px 12px;font-size:13px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:2px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee;opacity:1}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type="date"],input[type="time"],input[type="datetime-local"],input[type="month"]{line-height:32px}input[type="date"].input-sm,input[type="time"].input-sm,input[type="datetime-local"].input-sm,input[type="month"].input-sm{line-height:30px}input[type="date"].input-lg,input[type="time"].input-lg,input[type="datetime-local"].input-lg,input[type="month"].input-lg{line-height:45px}}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:18px;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px \9}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"].disabled,input[type="checkbox"].disabled,fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm,.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:1px}select.input-sm,select.form-group-sm .form-control{height:30px;line-height:30px}textarea.input-sm,textarea.form-group-sm .form-control,select[multiple].input-sm,select[multiple].form-group-sm .form-control{height:auto}.input-lg,.form-group-lg .form-control{height:45px;padding:10px 16px;font-size:17px;line-height:1.33;border-radius:3px}select.input-lg,select.form-group-lg .form-control{height:45px;line-height:45px}textarea.input-lg,textarea.form-group-lg .form-control,select[multiple].input-lg,select[multiple].form-group-lg .form-control{height:auto}.has-feedback{position:relative}.has-feedback .form-control{padding-right:40px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:32px;height:32px;line-height:32px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback{width:45px;height:45px;line-height:45px}.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-success .form-control-feedback{color:#3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:23px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#404040}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:25px}.form-horizontal .form-group{margin-left:0;margin-right:0}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:7px}}.form-horizontal .has-feedback .form-control-feedback{right:0}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:14.3px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px}}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:13px;line-height:1.42857143;border-radius:2px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn.active.focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#333;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default.focus,.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled.focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default.focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary:hover,.btn-primary:focus,.btn-primary.focus,.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled.focus,.btn-primary[disabled].focus,fieldset[disabled] .btn-primary.focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success.focus,.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled.focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success.focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info.focus,.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled.focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info.focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning.focus,.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled.focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning.focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger.focus,.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled.focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger.focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{color:#337ab7;font-weight:normal;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#777;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:10px 16px;font-size:17px;line-height:1.33;border-radius:3px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:1px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:1px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none;visibility:hidden}.collapse.in{display:block;visibility:visible}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height, visibility;transition-property:height, visibility;-webkit-transition-duration:.35s;transition-duration:.35s;-webkit-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:13px;text-align:left;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);border-radius:2px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:8px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#262626;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;outline:0;background-color:#337ab7}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#777}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:541px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:2px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:2px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle="buttons"]>.btn input[type="radio"],[data-toggle="buttons"]>.btn-group>.btn input[type="radio"],[data-toggle="buttons"]>.btn input[type="checkbox"],[data-toggle="buttons"]>.btn-group>.btn input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:45px;padding:10px 16px;font-size:17px;line-height:1.33;border-radius:3px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:45px;line-height:45px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:1px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:13px;font-weight:normal;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:2px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:1px}.input-group-addon.input-lg{padding:10px 16px;font-size:17px;border-radius:3px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#777;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:8px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:2px 2px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:2px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:2px 2px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:2px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:2px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:2px 2px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none;visibility:hidden}.tab-content>.active{display:block;visibility:visible}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:30px;margin-bottom:18px;border:1px solid transparent}@media (min-width:541px){.navbar{border-radius:2px}}@media (min-width:541px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:0;padding-left:0;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:541px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block !important;visibility:visible !important;height:auto !important;padding-bottom:0;overflow:visible !important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-device-width:540px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}@media (min-width:541px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:541px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:541px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:6px 0;font-size:17px;line-height:18px;height:30px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:541px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:0}}.navbar-toggle{position:relative;float:right;margin-right:0;padding:9px 10px;margin-top:-2px;margin-bottom:-2px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:2px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:541px){.navbar-toggle{display:none}}.navbar-nav{margin:3px 0}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:18px}@media (max-width:540px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:18px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:541px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:6px;padding-bottom:6px}}.navbar-form{margin-left:0;margin-right:0;padding:10px 0;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:-1px;margin-bottom:-1px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:540px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:541px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-top-right-radius:2px;border-top-left-radius:2px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:-1px;margin-bottom:-1px}.navbar-btn.btn-sm{margin-top:0;margin-bottom:0}.navbar-btn.btn-xs{margin-top:4px;margin-bottom:4px}.navbar-text{margin-top:6px;margin-bottom:6px}@media (min-width:541px){.navbar-text{float:left;margin-left:0;margin-right:0}}@media (min-width:541px){.navbar-left{float:left !important;float:left}.navbar-right{float:right !important;float:right;margin-right:0}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#e7e7e7;color:#555}@media (max-width:540px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#333}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#080808;color:#fff}@media (max-width:540px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#fff}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:18px;list-style:none;background-color:#f5f5f5;border-radius:2px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#5e5e5e}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:18px 0;border-radius:2px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.42857143;text-decoration:none;color:#337ab7;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:2px;border-top-left-radius:2px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:2px;border-top-right-radius:2px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#777;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:17px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:1px;border-top-left-radius:1px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:1px;border-top-right-radius:1px}.pager{padding-left:0;margin:18px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#777;background-color:#fff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:hover,.label-default[href]:focus{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:bold;color:#fff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px 15px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:20px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{border-radius:3px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding:48px 0}.container .jumbotron,.container-fluid .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:58.5px}}.thumbnail{display:block;padding:4px;margin-bottom:18px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:2px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#000}.alert{padding:15px;margin-bottom:18px;border:1px solid transparent;border-radius:2px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:18px;margin-bottom:18px;background-color:#f5f5f5;border-radius:2px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:18px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-left,.media-right,.media-body{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:2px;border-top-left-radius:2px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:2px;border-bottom-left-radius:2px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;color:#555;background-color:#f5f5f5}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{background-color:#eee;color:#777;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:18px;background-color:#fff;border:1px solid transparent;border-radius:2px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:1px;border-top-left-radius:1px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:15px;color:inherit}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:1px;border-bottom-left-radius:1px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:1px;border-top-left-radius:1px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:1px;border-bottom-left-radius:1px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption{padding-left:15px;padding-right:15px}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:1px;border-top-left-radius:1px}.panel>.table:first-child>thead:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child{border-top-left-radius:1px;border-top-right-radius:1px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:1px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:1px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:1px;border-bottom-left-radius:1px}.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:1px;border-bottom-right-radius:1px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:1px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:1px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:18px}.panel-group .panel{margin-bottom:0;border-radius:2px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body,.panel-group .panel-heading+.panel-collapse>.list-group{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:2px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:3px}.well-sm{padding:9px;border-radius:1px}.close{float:right;font-size:19.5px;font-weight:bold;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);-o-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform 0.3s ease-out;-moz-transition:-moz-transform 0.3s ease-out;-o-transition:-o-transform 0.3s ease-out;transition:transform 0.3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.2);border-radius:3px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);background-clip:padding-box;outline:0}.modal-backdrop{position:absolute;top:0;right:0;left:0;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.42857143px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;visibility:visible;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-weight:normal;line-height:1.4;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:2px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{bottom:0;right:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1.42857143;text-align:left;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);border-radius:3px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);white-space:normal}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:13px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:2px 2px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,0.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,0.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{transition:transform .6s ease-in-out;backface-visibility:hidden;perspective:1000}.carousel-inner>.item.next,.carousel-inner>.item.active.right{transform:translate3d(100%, 0, 0);left:0}.carousel-inner>.item.prev,.carousel-inner>.item.active.left{transform:translate3d(-100%, 0, 0);left:0}.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right,.carousel-inner>.item.active{transform:translate3d(0, 0, 0);left:0}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:.5;filter:alpha(opacity=50);font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:linear-gradient(to right, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:linear-gradient(to right, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #fff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#fff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after,.item_buttons:before,.item_buttons:after{content:" ";display:table}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after,.item_buttons:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important;visibility:hidden !important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width:767px){.visible-xs{display:block !important}table.visible-xs{display:table}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width:767px){.visible-xs-block{display:block !important}}@media (max-width:767px){.visible-xs-inline{display:inline !important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block !important}table.visible-sm{display:table}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block !important}table.visible-md{display:table}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block !important}}@media (min-width:1200px){.visible-lg{display:block !important}table.visible-lg{display:table}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width:1200px){.visible-lg-block{display:block !important}}@media (min-width:1200px){.visible-lg-inline{display:inline !important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block !important}}@media (max-width:767px){.hidden-xs{display:none !important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none !important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none !important}}@media (min-width:1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}.visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}.visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}@media print{.hidden-print{display:none !important}}/*! -* -* Font Awesome -* -*//*! - * Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome - * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */@font-face{font-family:'FontAwesome';src:url('../components/font-awesome/fonts/fontawesome-webfont.eot?v=4.3.0');src:url('../components/font-awesome/fonts/fontawesome-webfont.eot?#iefix&v=4.3.0') format('embedded-opentype'),url('../components/font-awesome/fonts/fontawesome-webfont.woff2?v=4.3.0') format('woff2'),url('../components/font-awesome/fonts/fontawesome-webfont.woff?v=4.3.0') format('woff'),url('../components/font-awesome/fonts/fontawesome-webfont.ttf?v=4.3.0') format('truetype'),url('../components/font-awesome/fonts/fontawesome-webfont.svg?v=4.3.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0)}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-genderless:before,.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}/*! -* -* IPython base -* -*/.modal.fade .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}code{color:#000}pre{font-size:inherit;line-height:inherit}label{font-weight:normal}.border-box-sizing{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.corner-all{border-radius:2px}.no-padding{padding:0}.hbox{display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;display:flex;flex-direction:row;align-items:stretch}.hbox>*{-webkit-box-flex:0;-moz-box-flex:0;box-flex:0;flex:none}.vbox{display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;display:flex;flex-direction:column;align-items:stretch}.vbox>*{-webkit-box-flex:0;-moz-box-flex:0;box-flex:0;flex:none}.hbox.reverse,.vbox.reverse,.reverse{-webkit-box-direction:reverse;-moz-box-direction:reverse;box-direction:reverse;flex-direction:row-reverse}.hbox.box-flex0,.vbox.box-flex0,.box-flex0{-webkit-box-flex:0;-moz-box-flex:0;box-flex:0;flex:none;width:auto}.hbox.box-flex1,.vbox.box-flex1,.box-flex1{-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;flex:1}.hbox.box-flex,.vbox.box-flex,.box-flex{-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;flex:1}.hbox.box-flex2,.vbox.box-flex2,.box-flex2{-webkit-box-flex:2;-moz-box-flex:2;box-flex:2;flex:2}.box-group1{-webkit-box-flex-group:1;-moz-box-flex-group:1;box-flex-group:1}.box-group2{-webkit-box-flex-group:2;-moz-box-flex-group:2;box-flex-group:2}.hbox.start,.vbox.start,.start{-webkit-box-pack:start;-moz-box-pack:start;box-pack:start;justify-content:flex-start}.hbox.end,.vbox.end,.end{-webkit-box-pack:end;-moz-box-pack:end;box-pack:end;justify-content:flex-end}.hbox.center,.vbox.center,.center{-webkit-box-pack:center;-moz-box-pack:center;box-pack:center;justify-content:center}.hbox.baseline,.vbox.baseline,.baseline{-webkit-box-pack:baseline;-moz-box-pack:baseline;box-pack:baseline;justify-content:baseline}.hbox.stretch,.vbox.stretch,.stretch{-webkit-box-pack:stretch;-moz-box-pack:stretch;box-pack:stretch;justify-content:stretch}.hbox.align-start,.vbox.align-start,.align-start{-webkit-box-align:start;-moz-box-align:start;box-align:start;align-items:flex-start}.hbox.align-end,.vbox.align-end,.align-end{-webkit-box-align:end;-moz-box-align:end;box-align:end;align-items:flex-end}.hbox.align-center,.vbox.align-center,.align-center{-webkit-box-align:center;-moz-box-align:center;box-align:center;align-items:center}.hbox.align-baseline,.vbox.align-baseline,.align-baseline{-webkit-box-align:baseline;-moz-box-align:baseline;box-align:baseline;align-items:baseline}.hbox.align-stretch,.vbox.align-stretch,.align-stretch{-webkit-box-align:stretch;-moz-box-align:stretch;box-align:stretch;align-items:stretch}div.error{margin:2em;text-align:center}div.error>h1{font-size:500%;line-height:normal}div.error>p{font-size:200%;line-height:normal}div.traceback-wrapper{text-align:left;max-width:800px;margin:auto}body{background-color:#fff;position:absolute;left:0;right:0;top:0;bottom:0;overflow:visible}#header{display:none;background-color:#fff;position:relative;z-index:100}#header #header-container{padding-bottom:5px;padding-top:5px;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}#header .header-bar{width:100%;height:1px;background:#e7e7e7;margin-bottom:-1px}@media print{#header{display:none !important}}#header-spacer{width:100%;visibility:hidden}@media print{#header-spacer{display:none}}#ipython_notebook{padding-left:0;padding-top:1px;padding-bottom:1px}@media (max-width:991px){#ipython_notebook{margin-left:10px}}#noscript{width:auto;padding-top:16px;padding-bottom:16px;text-align:center;font-size:22px;color:red;font-weight:bold}#ipython_notebook img{height:28px}#site{width:100%;display:none;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;overflow:auto}@media print{#site{height:auto !important}}.ui-button .ui-button-text{padding:.2em .8em;font-size:77%}input.ui-button{padding:.3em .9em}span#login_widget{float:right}span#login_widget>.button,#logout{color:#333;background-color:#fff;border-color:#ccc}span#login_widget>.button:hover,#logout:hover,span#login_widget>.button:focus,#logout:focus,span#login_widget>.button.focus,#logout.focus,span#login_widget>.button:active,#logout:active,span#login_widget>.button.active,#logout.active,.open>.dropdown-togglespan#login_widget>.button,.open>.dropdown-toggle#logout{color:#333;background-color:#e6e6e6;border-color:#adadad}span#login_widget>.button:active,#logout:active,span#login_widget>.button.active,#logout.active,.open>.dropdown-togglespan#login_widget>.button,.open>.dropdown-toggle#logout{background-image:none}span#login_widget>.button.disabled,#logout.disabled,span#login_widget>.button[disabled],#logout[disabled],fieldset[disabled] span#login_widget>.button,fieldset[disabled] #logout,span#login_widget>.button.disabled:hover,#logout.disabled:hover,span#login_widget>.button[disabled]:hover,#logout[disabled]:hover,fieldset[disabled] span#login_widget>.button:hover,fieldset[disabled] #logout:hover,span#login_widget>.button.disabled:focus,#logout.disabled:focus,span#login_widget>.button[disabled]:focus,#logout[disabled]:focus,fieldset[disabled] span#login_widget>.button:focus,fieldset[disabled] #logout:focus,span#login_widget>.button.disabled.focus,#logout.disabled.focus,span#login_widget>.button[disabled].focus,#logout[disabled].focus,fieldset[disabled] span#login_widget>.button.focus,fieldset[disabled] #logout.focus,span#login_widget>.button.disabled:active,#logout.disabled:active,span#login_widget>.button[disabled]:active,#logout[disabled]:active,fieldset[disabled] span#login_widget>.button:active,fieldset[disabled] #logout:active,span#login_widget>.button.disabled.active,#logout.disabled.active,span#login_widget>.button[disabled].active,#logout[disabled].active,fieldset[disabled] span#login_widget>.button.active,fieldset[disabled] #logout.active{background-color:#fff;border-color:#ccc}span#login_widget>.button .badge,#logout .badge{color:#fff;background-color:#333}.nav-header{text-transform:none}#header>span{margin-top:10px}.modal_stretch .modal-dialog{display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;display:flex;flex-direction:column;align-items:stretch;min-height:80%}.modal_stretch .modal-dialog .modal-body{max-height:none;flex:1}@media (min-width:768px){.modal .modal-dialog{width:700px}}@media (min-width:768px){select.form-control{margin-left:12px;margin-right:12px}}/*! -* -* IPython auth -* -*/.center-nav{display:inline-block;margin-bottom:-4px}/*! -* -* IPython tree view -* -*/.alternate_upload{background-color:none;display:inline}.alternate_upload.form{padding:0;margin:0}.alternate_upload input.fileinput{display:inline;opacity:0;z-index:2;width:12ex;margin-right:-12ex}.alternate_upload .input-overlay{display:inline-block;font-weight:bold;line-height:1em}ul#tabs{margin-bottom:4px}ul#tabs a{padding-top:6px;padding-bottom:4px}ul.breadcrumb a:focus,ul.breadcrumb a:hover{text-decoration:none}ul.breadcrumb i.icon-home{font-size:16px;margin-right:4px}ul.breadcrumb span{color:#5e5e5e}.list_toolbar{padding:4px 0 4px 0;vertical-align:middle}.list_toolbar .tree-buttons{padding-top:1px}.dynamic-buttons{display:inline-block}.list_toolbar [class*="span"]{min-height:24px}.list_header{font-weight:bold;background-color:#eee}.list_placeholder{font-weight:bold;padding-top:4px;padding-bottom:4px;padding-left:7px;padding-right:7px}.list_container{margin-top:4px;margin-bottom:20px;border:1px solid #ddd;border-radius:2px}.list_container>div{border-bottom:1px solid #ddd}.list_container>div:hover .list-item{background-color:red}.list_container>div:last-child{border:none}.list_item:hover .list_item{background-color:#ddd}.list_item a{text-decoration:none}.list_item:hover{background-color:#fafafa}.action_col{text-align:right}.list_header>div,.list_item>div{padding-top:4px;padding-bottom:4px;padding-left:7px;padding-right:7px;line-height:22px}.list_header>div input,.list_item>div input{margin-right:7px;margin-left:14px;vertical-align:baseline;line-height:22px;position:relative;top:-1px}.list_header>div .item_link,.list_item>div .item_link{margin-left:-1px;vertical-align:baseline;line-height:22px}.new-file input[type=checkbox]{visibility:hidden}.item_name{line-height:22px;height:24px}.item_icon{font-size:14px;color:#5e5e5e;margin-right:7px;margin-left:7px;line-height:22px;vertical-align:baseline}.item_buttons{padding-top:4px;line-height:1em;margin-left:-5px}.item_buttons .btn-group,.item_buttons .input-group{float:left}.item_buttons>.btn,.item_buttons>.btn-group,.item_buttons>.input-group{margin-left:5px}.item_buttons .btn{min-width:13ex}.item_buttons .running-indicator{color:#5cb85c}.toolbar_info{height:24px;line-height:24px}input.nbname_input,input.engine_num_input{padding-top:3px;padding-bottom:3px;height:22px;line-height:14px;margin:0}input.engine_num_input{width:60px}.highlight_text{color:blue}#project_name{display:inline-block;padding-left:7px;margin-left:-2px}#project_name>.breadcrumb{padding:0;margin-bottom:0;background-color:transparent;font-weight:bold}#tree-selector{display:inline-block;padding-right:0}#tree-selector input[type=checkbox]{margin-left:7px;vertical-align:baseline}.tab-content .row{margin-left:0;margin-right:0}.folder_icon:before{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0);content:"\f114"}.folder_icon:before.pull-left{margin-right:.3em}.folder_icon:before.pull-right{margin-left:.3em}.notebook_icon:before{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0);content:"\f02d";position:relative;top:-1px}.notebook_icon:before.pull-left{margin-right:.3em}.notebook_icon:before.pull-right{margin-left:.3em}.running_notebook_icon:before{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0);content:"\f02d";position:relative;top:-1px;color:#5cb85c}.running_notebook_icon:before.pull-left{margin-right:.3em}.running_notebook_icon:before.pull-right{margin-left:.3em}.file_icon:before{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0);content:"\f016";position:relative;top:-2px}.file_icon:before.pull-left{margin-right:.3em}.file_icon:before.pull-right{margin-left:.3em}#notebook_toolbar .pull-right{padding-top:0;margin-right:-1px}ul#new-menu{left:auto;right:0}.kernel-menu-icon{padding-right:12px;width:24px;content:"\f096"}.kernel-menu-icon:before{content:"\f096"}.kernel-menu-icon-current:before{content:"\f00c"}#tab_content{padding-top:20px}#running .panel-group .panel{margin-top:3px;margin-bottom:1em}#running .panel-group .panel .panel-heading{background-color:#eee;padding-top:4px;padding-bottom:4px;padding-left:7px;padding-right:7px;line-height:22px}#running .panel-group .panel .panel-heading a:focus,#running .panel-group .panel .panel-heading a:hover{text-decoration:none}#running .panel-group .panel .panel-body{padding:0}#running .panel-group .panel .panel-body .list_container{margin-top:0;margin-bottom:0;border:0;border-radius:0}#running .panel-group .panel .panel-body .list_container .list_item{border-bottom:1px solid #ddd}#running .panel-group .panel .panel-body .list_container .list_item:last-child{border-bottom:0}.delete-button{display:none}.duplicate-button{display:none}.rename-button{display:none}.shutdown-button{display:none}/*! -* -* IPython text editor webapp -* -*/.selected-keymap i.fa{padding:0 5px}.selected-keymap i.fa:before{content:"\f00c"}#mode-menu{overflow:auto;max-height:20em}.edit_app #header{-webkit-box-shadow:0 0 12px 1px rgba(87,87,87,0.2);box-shadow:0 0 12px 1px rgba(87,87,87,0.2)}.edit_app #menubar .navbar{margin-bottom:-1px}.dirty-indicator{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0);width:20px}.dirty-indicator.pull-left{margin-right:.3em}.dirty-indicator.pull-right{margin-left:.3em}.dirty-indicator-dirty{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0);width:20px}.dirty-indicator-dirty.pull-left{margin-right:.3em}.dirty-indicator-dirty.pull-right{margin-left:.3em}.dirty-indicator-clean{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0);width:20px}.dirty-indicator-clean.pull-left{margin-right:.3em}.dirty-indicator-clean.pull-right{margin-left:.3em}.dirty-indicator-clean:before{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0);content:"\f00c"}.dirty-indicator-clean:before.pull-left{margin-right:.3em}.dirty-indicator-clean:before.pull-right{margin-left:.3em}#filename{font-size:16pt;display:table;padding:0 5px}#current-mode{padding-left:5px;padding-right:5px}#texteditor-backdrop{padding-top:20px;padding-bottom:20px}@media not print{#texteditor-backdrop{background-color:#eee}}@media print{#texteditor-backdrop #texteditor-container .CodeMirror-gutter,#texteditor-backdrop #texteditor-container .CodeMirror-gutters{background-color:#fff}}@media not print{#texteditor-backdrop #texteditor-container .CodeMirror-gutter,#texteditor-backdrop #texteditor-container .CodeMirror-gutters{background-color:#fff}}@media not print{#texteditor-backdrop #texteditor-container{padding:0;background-color:#fff;-webkit-box-shadow:0 0 12px 1px rgba(87,87,87,0.2);box-shadow:0 0 12px 1px rgba(87,87,87,0.2)}}/*! -* -* IPython notebook -* -*/.ansibold{font-weight:bold}.ansiblack{color:black}.ansired{color:darkred}.ansigreen{color:darkgreen}.ansiyellow{color:#c4a000}.ansiblue{color:darkblue}.ansipurple{color:darkviolet}.ansicyan{color:steelblue}.ansigray{color:gray}.ansibgblack{background-color:black}.ansibgred{background-color:red}.ansibggreen{background-color:green}.ansibgyellow{background-color:yellow}.ansibgblue{background-color:blue}.ansibgpurple{background-color:magenta}.ansibgcyan{background-color:cyan}.ansibggray{background-color:gray}div.cell{border:1px solid transparent;display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;display:flex;flex-direction:column;align-items:stretch;border-radius:2px;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;border-width:thin;border-style:solid;width:100%;padding:5px;margin:0;outline:none}div.cell.selected{border-color:#ababab}@media print{div.cell.selected{border-color:transparent}}.edit_mode div.cell.selected{border-color:green}@media print{.edit_mode div.cell.selected{border-color:transparent}}.prompt{min-width:14ex;padding:.4em;margin:0;font-family:monospace;text-align:right;line-height:1.21429em}@media (max-width:540px){.prompt{text-align:left}}div.inner_cell{display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;display:flex;flex-direction:column;align-items:stretch;-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;flex:1}@-moz-document url-prefix(){div.inner_cell{overflow-x:hidden}}div.input_area{border:1px solid #cfcfcf;border-radius:2px;background:#f7f7f7;line-height:1.21429em}div.prompt:empty{padding-top:0;padding-bottom:0}div.unrecognized_cell{padding:5px 5px 5px 0;display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;display:flex;flex-direction:row;align-items:stretch}div.unrecognized_cell .inner_cell{border-radius:2px;padding:5px;font-weight:bold;color:red;border:1px solid #cfcfcf;background:#eaeaea}div.unrecognized_cell .inner_cell a{color:inherit;text-decoration:none}div.unrecognized_cell .inner_cell a:hover{color:inherit;text-decoration:none}@media (max-width:540px){div.unrecognized_cell>div.prompt{display:none}}@media print{div.code_cell{page-break-inside:avoid}}div.input{page-break-inside:avoid;display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;display:flex;flex-direction:row;align-items:stretch}@media (max-width:540px){div.input{display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;display:flex;flex-direction:column;align-items:stretch}}div.input_prompt{color:navy;border-top:1px solid transparent}div.input_area>div.highlight{margin:.4em;border:none;padding:0;background-color:transparent}div.input_area>div.highlight>pre{margin:0;border:none;padding:0;background-color:transparent}.CodeMirror{line-height:1.21429em;font-size:14px;height:auto;background:none}.CodeMirror-scroll{overflow-y:hidden;overflow-x:auto}.CodeMirror-lines{padding:.4em}.CodeMirror-linenumber{padding:0 8px 0 4px}.CodeMirror-gutters{border-bottom-left-radius:2px;border-top-left-radius:2px}.CodeMirror pre{padding:0;border:0;border-radius:0}.highlight-base{color:#000}.highlight-variable{color:#000}.highlight-variable-2{color:#1a1a1a}.highlight-variable-3{color:#333}.highlight-string{color:#ba2121}.highlight-comment{color:#408080;font-style:italic}.highlight-number{color:#080}.highlight-atom{color:#88f}.highlight-keyword{color:#008000;font-weight:bold}.highlight-builtin{color:#008000}.highlight-error{color:#f00}.highlight-operator{color:#a2f;font-weight:bold}.highlight-meta{color:#a2f}.highlight-def{color:#00f}.highlight-string-2{color:#f50}.highlight-qualifier{color:#555}.highlight-bracket{color:#997}.highlight-tag{color:#170}.highlight-attribute{color:#00c}.highlight-header{color:blue}.highlight-quote{color:#090}.highlight-link{color:#00c}.cm-s-ipython span.cm-keyword{color:#008000;font-weight:bold}.cm-s-ipython span.cm-atom{color:#88f}.cm-s-ipython span.cm-number{color:#080}.cm-s-ipython span.cm-def{color:#00f}.cm-s-ipython span.cm-variable{color:#000}.cm-s-ipython span.cm-operator{color:#a2f;font-weight:bold}.cm-s-ipython span.cm-variable-2{color:#1a1a1a}.cm-s-ipython span.cm-variable-3{color:#333}.cm-s-ipython span.cm-comment{color:#408080;font-style:italic}.cm-s-ipython span.cm-string{color:#ba2121}.cm-s-ipython span.cm-string-2{color:#f50}.cm-s-ipython span.cm-meta{color:#a2f}.cm-s-ipython span.cm-qualifier{color:#555}.cm-s-ipython span.cm-builtin{color:#008000}.cm-s-ipython span.cm-bracket{color:#997}.cm-s-ipython span.cm-tag{color:#170}.cm-s-ipython span.cm-attribute{color:#00c}.cm-s-ipython span.cm-header{color:blue}.cm-s-ipython span.cm-quote{color:#090}.cm-s-ipython span.cm-link{color:#00c}.cm-s-ipython span.cm-error{color:#f00}.cm-s-ipython span.cm-tab{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII=);background-position:right;background-repeat:no-repeat}div.output_wrapper{position:relative;display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;display:flex;flex-direction:column;align-items:stretch}div.output_scroll{height:24em;width:100%;overflow:auto;border-radius:2px;-webkit-box-shadow:inset 0 2px 8px rgba(0,0,0,0.8);box-shadow:inset 0 2px 8px rgba(0,0,0,0.8);display:block}div.output_collapsed{margin:0;padding:0;display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;display:flex;flex-direction:column;align-items:stretch}div.out_prompt_overlay{height:100%;padding:0 .4em;position:absolute;border-radius:2px}div.out_prompt_overlay:hover{-webkit-box-shadow:inset 0 0 1px #000;box-shadow:inset 0 0 1px #000;background:rgba(240,240,240,0.5)}div.output_prompt{color:darkred}div.output_area{padding:0;page-break-inside:avoid;display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;display:flex;flex-direction:row;align-items:stretch}div.output_area .MathJax_Display{text-align:left !important}div.output_area .rendered_html table{margin-left:0;margin-right:0}div.output_area .rendered_html img{margin-left:0;margin-right:0}.output{display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;display:flex;flex-direction:column;align-items:stretch}@media (max-width:540px){div.output_area{display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;display:flex;flex-direction:column;align-items:stretch}}div.output_area pre{margin:0;padding:0;border:0;vertical-align:baseline;color:black;background-color:transparent;border-radius:0}div.output_subarea{padding:.4em;-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;flex:1}div.output_text{text-align:left;color:#000;line-height:1.21429em}div.output_stderr{background:#fdd}div.output_latex{text-align:left}div.output_javascript:empty{padding:0}.js-error{color:darkred}div.raw_input_container{font-family:monospace;padding-top:5px}input.raw_input{font-family:inherit;font-size:inherit;color:inherit;width:auto;vertical-align:baseline;padding:0 .25em;margin:0 .25em}input.raw_input:focus{box-shadow:none}p.p-space{margin-bottom:10px}div.output_unrecognized{padding:5px;font-weight:bold;color:red}div.output_unrecognized a{color:inherit;text-decoration:none}div.output_unrecognized a:hover{color:inherit;text-decoration:none}.rendered_html{color:#000}.rendered_html em{font-style:italic}.rendered_html strong{font-weight:bold}.rendered_html u{text-decoration:underline}.rendered_html :link{text-decoration:underline}.rendered_html :visited{text-decoration:underline}.rendered_html h1{font-size:185.7%;margin:1.08em 0 0 0;font-weight:bold;line-height:1}.rendered_html h2{font-size:157.1%;margin:1.27em 0 0 0;font-weight:bold;line-height:1}.rendered_html h3{font-size:128.6%;margin:1.55em 0 0 0;font-weight:bold;line-height:1}.rendered_html h4{font-size:100%;margin:2em 0 0 0;font-weight:bold;line-height:1}.rendered_html h5{font-size:100%;margin:2em 0 0 0;font-weight:bold;line-height:1;font-style:italic}.rendered_html h6{font-size:100%;margin:2em 0 0 0;font-weight:bold;line-height:1;font-style:italic}.rendered_html h1:first-child{margin-top:.538em}.rendered_html h2:first-child{margin-top:.636em}.rendered_html h3:first-child{margin-top:.777em}.rendered_html h4:first-child{margin-top:1em}.rendered_html h5:first-child{margin-top:1em}.rendered_html h6:first-child{margin-top:1em}.rendered_html ul{list-style:disc;margin:0 2em;padding-left:0}.rendered_html ul ul{list-style:square;margin:0 2em}.rendered_html ul ul ul{list-style:circle;margin:0 2em}.rendered_html ol{list-style:decimal;margin:0 2em;padding-left:0}.rendered_html ol ol{list-style:upper-alpha;margin:0 2em}.rendered_html ol ol ol{list-style:lower-alpha;margin:0 2em}.rendered_html ol ol ol ol{list-style:lower-roman;margin:0 2em}.rendered_html ol ol ol ol ol{list-style:decimal;margin:0 2em}.rendered_html *+ul{margin-top:1em}.rendered_html *+ol{margin-top:1em}.rendered_html hr{color:black;background-color:black}.rendered_html pre{margin:1em 2em}.rendered_html pre,.rendered_html code{border:0;background-color:#fff;color:#000;font-size:100%;padding:0}.rendered_html blockquote{margin:1em 2em}.rendered_html table{margin-left:auto;margin-right:auto;border:1px solid black;border-collapse:collapse}.rendered_html tr,.rendered_html th,.rendered_html td{border:1px solid black;border-collapse:collapse;margin:1em 2em}.rendered_html td,.rendered_html th{text-align:left;vertical-align:middle;padding:4px}.rendered_html th{font-weight:bold}.rendered_html *+table{margin-top:1em}.rendered_html p{text-align:left}.rendered_html *+p{margin-top:1em}.rendered_html img{display:block;margin-left:auto;margin-right:auto}.rendered_html *+img{margin-top:1em}div.text_cell{display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;display:flex;flex-direction:row;align-items:stretch}@media (max-width:540px){div.text_cell>div.prompt{display:none}}div.text_cell_render{outline:none;resize:none;width:inherit;border-style:none;padding:.5em .5em .5em .4em;color:#000;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}a.anchor-link:link{text-decoration:none;padding:0 20px;visibility:hidden}h1:hover .anchor-link,h2:hover .anchor-link,h3:hover .anchor-link,h4:hover .anchor-link,h5:hover .anchor-link,h6:hover .anchor-link{visibility:visible}.text_cell.rendered .input_area{display:none}.text_cell.unrendered .text_cell_render{display:none}.cm-header-1,.cm-header-2,.cm-header-3,.cm-header-4,.cm-header-5,.cm-header-6{font-weight:bold;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}.cm-header-1{font-size:185.7%}.cm-header-2{font-size:157.1%}.cm-header-3{font-size:128.6%}.cm-header-4{font-size:110%}.cm-header-5{font-size:100%;font-style:italic}.cm-header-6{font-size:100%;font-style:italic}.widget-interact>div,.widget-interact>input{padding:2.5px}.widget-area{page-break-inside:avoid;display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;display:flex;flex-direction:row;align-items:stretch}.widget-area .widget-subarea{padding:.44em .4em .4em 1px;margin-left:6px;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;display:flex;flex-direction:column;align-items:stretch;-webkit-box-flex:2;-moz-box-flex:2;box-flex:2;flex:2;-webkit-box-align:start;-moz-box-align:start;box-align:start;align-items:flex-start}.widget-area.connection-problems .prompt:after{content:"\f127";font-family:'FontAwesome';color:#d9534f;font-size:14px;top:3px;padding:3px}.slide-track{border:1px solid #ccc;background:#fff;border-radius:2px}.widget-hslider{padding-left:8px;padding-right:2px;overflow:visible;width:350px;height:5px;max-height:5px;margin-top:13px;margin-bottom:10px;border:1px solid #ccc;background:#fff;border-radius:2px;display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;display:flex;flex-direction:row;align-items:stretch}.widget-hslider .ui-slider{border:0;background:none;display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;display:flex;flex-direction:row;align-items:stretch;-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;flex:1}.widget-hslider .ui-slider .ui-slider-handle{width:12px;height:28px;margin-top:-8px;border-radius:2px}.widget-hslider .ui-slider .ui-slider-range{height:12px;margin-top:-4px;background:#eee}.widget-vslider{padding-bottom:5px;overflow:visible;width:5px;max-width:5px;height:250px;margin-left:12px;border:1px solid #ccc;background:#fff;border-radius:2px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;display:flex;flex-direction:column;align-items:stretch}.widget-vslider .ui-slider{border:0;background:none;margin-left:-4px;margin-top:5px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;display:flex;flex-direction:column;align-items:stretch;-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;flex:1}.widget-vslider .ui-slider .ui-slider-handle{width:28px;height:12px;margin-left:-9px;border-radius:2px}.widget-vslider .ui-slider .ui-slider-range{width:12px;margin-left:-1px;background:#eee}.widget-text{width:350px;margin:0}.widget-listbox{width:350px;margin-bottom:0}.widget-numeric-text{width:150px;margin:0}.widget-progress{margin-top:6px;min-width:350px}.widget-progress .progress-bar{-webkit-transition:none;-moz-transition:none;-ms-transition:none;-o-transition:none;transition:none}.widget-combo-btn{min-width:125px}.widget_item .dropdown-menu li a{color:inherit}.widget-hbox{display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;display:flex;flex-direction:row;align-items:stretch}.widget-hbox input[type="checkbox"]{margin-top:9px;margin-bottom:10px}.widget-hbox .widget-label{min-width:10ex;padding-right:8px;padding-top:5px;text-align:right;vertical-align:text-top}.widget-hbox .widget-readout{padding-left:8px;padding-top:5px;text-align:left;vertical-align:text-top}.widget-vbox{display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;display:flex;flex-direction:column;align-items:stretch}.widget-vbox .widget-label{padding-bottom:5px;text-align:center;vertical-align:text-bottom}.widget-vbox .widget-readout{padding-top:5px;text-align:center;vertical-align:text-top}.widget-box{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;-webkit-box-align:start;-moz-box-align:start;box-align:start;align-items:flex-start}.widget-radio-box{display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;display:flex;flex-direction:column;align-items:stretch;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding-top:4px}.widget-radio-box label{margin-top:0}.widget-radio{margin-left:20px}/*! -* -* IPython notebook webapp -* -*/@media (max-width:767px){.notebook_app{padding-left:0;padding-right:0}}#ipython-main-app{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;height:100%}div#notebook_panel{margin:0;padding:0;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;height:100%}#notebook{font-size:14px;line-height:20px;overflow-y:hidden;overflow-x:auto;width:100%;padding-top:20px;margin:0;outline:none;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;min-height:100%}@media not print{#notebook-container{padding:15px;background-color:#fff;min-height:0;-webkit-box-shadow:0 0 12px 1px rgba(87,87,87,0.2);box-shadow:0 0 12px 1px rgba(87,87,87,0.2)}}div.ui-widget-content{border:1px solid #ababab;outline:none}pre.dialog{background-color:#f7f7f7;border:1px solid #ddd;border-radius:2px;padding:.4em;padding-left:2em}p.dialog{padding:.2em}pre,code,kbd,samp{white-space:pre-wrap}#fonttest{font-family:monospace}p{margin-bottom:0}.end_space{min-height:100px;transition:height .2s ease}.notebook_app #header{-webkit-box-shadow:0 0 12px 1px rgba(87,87,87,0.2);box-shadow:0 0 12px 1px rgba(87,87,87,0.2)}@media not print{.notebook_app{background-color:#eee}}.celltoolbar{border:thin solid #cfcfcf;border-bottom:none;background:#eee;border-radius:2px 2px 0 0;width:100%;height:29px;padding-right:4px;display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;display:flex;flex-direction:row;align-items:stretch;-webkit-box-pack:end;-moz-box-pack:end;box-pack:end;justify-content:flex-end}@media print{.celltoolbar{display:none}}.ctb_hideshow{display:none;vertical-align:bottom}.ctb_global_show .ctb_show.ctb_hideshow{display:block}.ctb_global_show .ctb_show+.input_area,.ctb_global_show .ctb_show+div.text_cell_input,.ctb_global_show .ctb_show~div.text_cell_render{border-top-right-radius:0;border-top-left-radius:0}.ctb_global_show .ctb_show~div.text_cell_render{border:1px solid #cfcfcf}.celltoolbar{font-size:87%;padding-top:3px}.celltoolbar select{display:block;width:100%;height:32px;padding:6px 12px;font-size:13px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:2px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s;height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:1px;width:inherit;font-size:inherit;height:22px;padding:0;display:inline-block}.celltoolbar select:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6)}.celltoolbar select::-moz-placeholder{color:#999;opacity:1}.celltoolbar select:-ms-input-placeholder{color:#999}.celltoolbar select::-webkit-input-placeholder{color:#999}.celltoolbar select[disabled],.celltoolbar select[readonly],fieldset[disabled] .celltoolbar select{cursor:not-allowed;background-color:#eee;opacity:1}textarea.celltoolbar select{height:auto}select.celltoolbar select{height:30px;line-height:30px}textarea.celltoolbar select,select[multiple].celltoolbar select{height:auto}.celltoolbar label{margin-left:5px;margin-right:5px}.completions{position:absolute;z-index:10;overflow:hidden;border:1px solid #ababab;border-radius:2px;-webkit-box-shadow:0 6px 10px -1px #adadad;box-shadow:0 6px 10px -1px #adadad}.completions select{background:white;outline:none;border:none;padding:0;margin:0;overflow:auto;font-family:monospace;font-size:110%;color:#000;width:auto}.completions select option.context{color:#286090}#kernel_logo_widget{float:right !important;float:right}#kernel_logo_widget .current_kernel_logo{display:none;margin-top:-1px;margin-bottom:-1px;width:32px;height:32px}#menubar{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;margin-top:1px}#menubar .navbar{border-top:1px;border-radius:0 0 2px 2px;margin-bottom:0}#menubar .navbar-toggle{float:left;padding-top:7px;padding-bottom:7px;border:none}#menubar .navbar-collapse{clear:left}.nav-wrapper{border-bottom:1px solid #e7e7e7}i.menu-icon{padding-top:4px}ul#help_menu li a{overflow:hidden;padding-right:2.2em}ul#help_menu li a i{margin-right:-1.2em}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px}.dropdown-submenu:hover>.dropdown-menu{display:block}.dropdown-submenu>a:after{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0);display:block;content:"\f0da";float:right;color:#333;margin-top:2px;margin-right:-10px}.dropdown-submenu>a:after.pull-left{margin-right:.3em}.dropdown-submenu>a:after.pull-right{margin-left:.3em}.dropdown-submenu:hover>a:after{color:#262626}.dropdown-submenu.pull-left{float:none}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px}#notification_area{float:right !important;float:right;z-index:10}.indicator_area{float:right !important;float:right;color:#777;margin-left:5px;margin-right:5px;width:11px;z-index:10;text-align:center;width:auto}#kernel_indicator{float:right !important;float:right;color:#777;margin-left:5px;margin-right:5px;width:11px;z-index:10;text-align:center;width:auto;border-left:1px solid}#kernel_indicator .kernel_indicator_name{padding-left:5px;padding-right:5px}#modal_indicator{float:right !important;float:right;color:#777;margin-left:5px;margin-right:5px;width:11px;z-index:10;text-align:center;width:auto}#readonly-indicator{float:right !important;float:right;color:#777;margin-left:5px;margin-right:5px;width:11px;z-index:10;text-align:center;width:auto;margin-top:2px;margin-bottom:0;margin-left:0;margin-right:0;display:none}.modal_indicator:before{width:1.28571429em;text-align:center}.edit_mode .modal_indicator:before{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0);content:"\f040"}.edit_mode .modal_indicator:before.pull-left{margin-right:.3em}.edit_mode .modal_indicator:before.pull-right{margin-left:.3em}.command_mode .modal_indicator:before{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0);content:' '}.command_mode .modal_indicator:before.pull-left{margin-right:.3em}.command_mode .modal_indicator:before.pull-right{margin-left:.3em}.kernel_idle_icon:before{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0);content:"\f10c"}.kernel_idle_icon:before.pull-left{margin-right:.3em}.kernel_idle_icon:before.pull-right{margin-left:.3em}.kernel_busy_icon:before{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0);content:"\f111"}.kernel_busy_icon:before.pull-left{margin-right:.3em}.kernel_busy_icon:before.pull-right{margin-left:.3em}.kernel_dead_icon:before{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0);content:"\f1e2"}.kernel_dead_icon:before.pull-left{margin-right:.3em}.kernel_dead_icon:before.pull-right{margin-left:.3em}.kernel_disconnected_icon:before{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0);content:"\f127"}.kernel_disconnected_icon:before.pull-left{margin-right:.3em}.kernel_disconnected_icon:before.pull-right{margin-left:.3em}.notification_widget{color:#777;z-index:10;background:rgba(240,240,240,0.5);color:#333;background-color:#fff;border-color:#ccc}.notification_widget:hover,.notification_widget:focus,.notification_widget.focus,.notification_widget:active,.notification_widget.active,.open>.dropdown-toggle.notification_widget{color:#333;background-color:#e6e6e6;border-color:#adadad}.notification_widget:active,.notification_widget.active,.open>.dropdown-toggle.notification_widget{background-image:none}.notification_widget.disabled,.notification_widget[disabled],fieldset[disabled] .notification_widget,.notification_widget.disabled:hover,.notification_widget[disabled]:hover,fieldset[disabled] .notification_widget:hover,.notification_widget.disabled:focus,.notification_widget[disabled]:focus,fieldset[disabled] .notification_widget:focus,.notification_widget.disabled.focus,.notification_widget[disabled].focus,fieldset[disabled] .notification_widget.focus,.notification_widget.disabled:active,.notification_widget[disabled]:active,fieldset[disabled] .notification_widget:active,.notification_widget.disabled.active,.notification_widget[disabled].active,fieldset[disabled] .notification_widget.active{background-color:#fff;border-color:#ccc}.notification_widget .badge{color:#fff;background-color:#333}.notification_widget.warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.notification_widget.warning:hover,.notification_widget.warning:focus,.notification_widget.warning.focus,.notification_widget.warning:active,.notification_widget.warning.active,.open>.dropdown-toggle.notification_widget.warning{color:#fff;background-color:#ec971f;border-color:#d58512}.notification_widget.warning:active,.notification_widget.warning.active,.open>.dropdown-toggle.notification_widget.warning{background-image:none}.notification_widget.warning.disabled,.notification_widget.warning[disabled],fieldset[disabled] .notification_widget.warning,.notification_widget.warning.disabled:hover,.notification_widget.warning[disabled]:hover,fieldset[disabled] .notification_widget.warning:hover,.notification_widget.warning.disabled:focus,.notification_widget.warning[disabled]:focus,fieldset[disabled] .notification_widget.warning:focus,.notification_widget.warning.disabled.focus,.notification_widget.warning[disabled].focus,fieldset[disabled] .notification_widget.warning.focus,.notification_widget.warning.disabled:active,.notification_widget.warning[disabled]:active,fieldset[disabled] .notification_widget.warning:active,.notification_widget.warning.disabled.active,.notification_widget.warning[disabled].active,fieldset[disabled] .notification_widget.warning.active{background-color:#f0ad4e;border-color:#eea236}.notification_widget.warning .badge{color:#f0ad4e;background-color:#fff}.notification_widget.success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.notification_widget.success:hover,.notification_widget.success:focus,.notification_widget.success.focus,.notification_widget.success:active,.notification_widget.success.active,.open>.dropdown-toggle.notification_widget.success{color:#fff;background-color:#449d44;border-color:#398439}.notification_widget.success:active,.notification_widget.success.active,.open>.dropdown-toggle.notification_widget.success{background-image:none}.notification_widget.success.disabled,.notification_widget.success[disabled],fieldset[disabled] .notification_widget.success,.notification_widget.success.disabled:hover,.notification_widget.success[disabled]:hover,fieldset[disabled] .notification_widget.success:hover,.notification_widget.success.disabled:focus,.notification_widget.success[disabled]:focus,fieldset[disabled] .notification_widget.success:focus,.notification_widget.success.disabled.focus,.notification_widget.success[disabled].focus,fieldset[disabled] .notification_widget.success.focus,.notification_widget.success.disabled:active,.notification_widget.success[disabled]:active,fieldset[disabled] .notification_widget.success:active,.notification_widget.success.disabled.active,.notification_widget.success[disabled].active,fieldset[disabled] .notification_widget.success.active{background-color:#5cb85c;border-color:#4cae4c}.notification_widget.success .badge{color:#5cb85c;background-color:#fff}.notification_widget.info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.notification_widget.info:hover,.notification_widget.info:focus,.notification_widget.info.focus,.notification_widget.info:active,.notification_widget.info.active,.open>.dropdown-toggle.notification_widget.info{color:#fff;background-color:#31b0d5;border-color:#269abc}.notification_widget.info:active,.notification_widget.info.active,.open>.dropdown-toggle.notification_widget.info{background-image:none}.notification_widget.info.disabled,.notification_widget.info[disabled],fieldset[disabled] .notification_widget.info,.notification_widget.info.disabled:hover,.notification_widget.info[disabled]:hover,fieldset[disabled] .notification_widget.info:hover,.notification_widget.info.disabled:focus,.notification_widget.info[disabled]:focus,fieldset[disabled] .notification_widget.info:focus,.notification_widget.info.disabled.focus,.notification_widget.info[disabled].focus,fieldset[disabled] .notification_widget.info.focus,.notification_widget.info.disabled:active,.notification_widget.info[disabled]:active,fieldset[disabled] .notification_widget.info:active,.notification_widget.info.disabled.active,.notification_widget.info[disabled].active,fieldset[disabled] .notification_widget.info.active{background-color:#5bc0de;border-color:#46b8da}.notification_widget.info .badge{color:#5bc0de;background-color:#fff}.notification_widget.danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.notification_widget.danger:hover,.notification_widget.danger:focus,.notification_widget.danger.focus,.notification_widget.danger:active,.notification_widget.danger.active,.open>.dropdown-toggle.notification_widget.danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.notification_widget.danger:active,.notification_widget.danger.active,.open>.dropdown-toggle.notification_widget.danger{background-image:none}.notification_widget.danger.disabled,.notification_widget.danger[disabled],fieldset[disabled] .notification_widget.danger,.notification_widget.danger.disabled:hover,.notification_widget.danger[disabled]:hover,fieldset[disabled] .notification_widget.danger:hover,.notification_widget.danger.disabled:focus,.notification_widget.danger[disabled]:focus,fieldset[disabled] .notification_widget.danger:focus,.notification_widget.danger.disabled.focus,.notification_widget.danger[disabled].focus,fieldset[disabled] .notification_widget.danger.focus,.notification_widget.danger.disabled:active,.notification_widget.danger[disabled]:active,fieldset[disabled] .notification_widget.danger:active,.notification_widget.danger.disabled.active,.notification_widget.danger[disabled].active,fieldset[disabled] .notification_widget.danger.active{background-color:#d9534f;border-color:#d43f3a}.notification_widget.danger .badge{color:#d9534f;background-color:#fff}div#pager{background-color:#fff;font-size:14px;line-height:20px;overflow:hidden;display:none;position:fixed;bottom:0;width:100%;max-height:50%;padding-top:8px;-webkit-box-shadow:0 0 12px 1px rgba(87,87,87,0.2);box-shadow:0 0 12px 1px rgba(87,87,87,0.2);z-index:100;top:auto !important}div#pager pre{line-height:1.21429em;color:#000;background-color:#f7f7f7;padding:.4em}div#pager #pager-button-area{position:absolute;top:8px;right:20px}div#pager #pager-contents{position:relative;overflow:auto;width:100%;height:100%}div#pager #pager-contents #pager-container{position:relative;padding:15px 0;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}div#pager .ui-resizable-handle{top:0;height:8px;background:#f7f7f7;border-top:1px solid #cfcfcf;border-bottom:1px solid #cfcfcf}div#pager .ui-resizable-handle::after{content:'';top:2px;left:50%;height:3px;width:30px;margin-left:-15px;position:absolute;border-top:1px solid #cfcfcf}.quickhelp{display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;display:flex;flex-direction:row;align-items:stretch}.shortcut_key{display:inline-block;width:20ex;text-align:right;font-family:monospace}.shortcut_descr{display:inline-block;-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;flex:1}span.save_widget{margin-top:6px}span.save_widget span.filename{height:1em;line-height:1em;padding:3px;margin-left:16px;border:none;font-size:146.5%;border-radius:2px}span.save_widget span.filename:hover{background-color:#e6e6e6}span.checkpoint_status,span.autosave_status{font-size:small}@media (max-width:767px){span.save_widget{font-size:small}span.checkpoint_status,span.autosave_status{display:none}}@media (min-width:768px) and (max-width:991px){span.checkpoint_status{display:none}span.autosave_status{font-size:x-small}}.toolbar{padding:0;margin-left:-5px;margin-top:2px;margin-bottom:5px;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.toolbar select,.toolbar label{width:auto;vertical-align:middle;margin-right:2px;margin-bottom:0;display:inline;font-size:92%;margin-left:.3em;margin-right:.3em;padding:0;padding-top:3px}.toolbar .btn{padding:2px 8px}.toolbar .btn-group{margin-top:0;margin-left:5px}#maintoolbar{margin-bottom:-3px;margin-top:-8px;border:0;min-height:27px;margin-left:0;padding-top:11px;padding-bottom:3px}#maintoolbar .navbar-text{float:none;vertical-align:middle;text-align:right;margin-left:5px;margin-right:0;margin-top:0}.select-xs{height:24px}@-moz-keyframes fadeOut{from{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOut{from{opacity:1}to{opacity:0}}@-moz-keyframes fadeIn{from{opacity:0}to{opacity:1}}@-webkit-keyframes fadeIn{from{opacity:0}to{opacity:1}}.bigtooltip{overflow:auto;height:200px;-webkit-transition-property:height;-webkit-transition-duration:500ms;-moz-transition-property:height;-moz-transition-duration:500ms;transition-property:height;transition-duration:500ms}.smalltooltip{-webkit-transition-property:height;-webkit-transition-duration:500ms;-moz-transition-property:height;-moz-transition-duration:500ms;transition-property:height;transition-duration:500ms;text-overflow:ellipsis;overflow:hidden;height:80px}.tooltipbuttons{position:absolute;padding-right:15px;top:0;right:0}.tooltiptext{padding-right:30px}.ipython_tooltip{max-width:700px;-webkit-animation:fadeOut 400ms;-moz-animation:fadeOut 400ms;animation:fadeOut 400ms;-webkit-animation:fadeIn 400ms;-moz-animation:fadeIn 400ms;animation:fadeIn 400ms;vertical-align:middle;background-color:#f7f7f7;overflow:visible;border:#ababab 1px solid;outline:none;padding:3px;margin:0;padding-left:7px;font-family:monospace;min-height:50px;-moz-box-shadow:0 6px 10px -1px #adadad;-webkit-box-shadow:0 6px 10px -1px #adadad;box-shadow:0 6px 10px -1px #adadad;border-radius:2px;position:absolute;z-index:1000}.ipython_tooltip a{float:right}.ipython_tooltip .tooltiptext pre{border:0;border-radius:0;font-size:100%;background-color:#f7f7f7}.pretooltiparrow{left:0;margin:0;top:-16px;width:40px;height:16px;overflow:hidden;position:absolute}.pretooltiparrow:before{background-color:#f7f7f7;border:1px #ababab solid;z-index:11;content:"";position:absolute;left:15px;top:10px;width:25px;height:25px;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg)}.terminal-app{background:#eee}.terminal-app #header{background:#fff;-webkit-box-shadow:0 0 12px 1px rgba(87,87,87,0.2);box-shadow:0 0 12px 1px rgba(87,87,87,0.2)}.terminal-app .terminal{float:left;font-family:monospace;color:white;background:black;padding:.4em;border-radius:2px;-webkit-box-shadow:0 0 12px 1px rgba(87,87,87,0.4);box-shadow:0 0 12px 1px rgba(87,87,87,0.4)}.terminal-app .terminal,.terminal-app .terminal dummy-screen{line-height:1em;font-size:14px}.terminal-app .terminal-cursor{color:black;background:white}.terminal-app #terminado-container{margin-top:20px}/*# sourceMappingURL=style.min.css.map */ - </style> -<style type="text/css"> - .highlight .hll { background-color: #ffffcc } -.highlight { background: #f8f8f8; } -.highlight .c { color: #408080; font-style: italic } /* Comment */ -.highlight .err { border: 1px solid #FF0000 } /* Error */ -.highlight .k { color: #008000; font-weight: bold } /* Keyword */ -.highlight .o { color: #666666 } /* Operator */ -.highlight .cm { color: #408080; font-style: italic } /* Comment.Multiline */ -.highlight .cp { color: #BC7A00 } /* Comment.Preproc */ -.highlight .c1 { color: #408080; font-style: italic } /* Comment.Single */ -.highlight .cs { color: #408080; font-style: italic } /* Comment.Special */ -.highlight .gd { color: #A00000 } /* Generic.Deleted */ -.highlight .ge { font-style: italic } /* Generic.Emph */ -.highlight .gr { color: #FF0000 } /* Generic.Error */ -.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ -.highlight .gi { color: #00A000 } /* Generic.Inserted */ -.highlight .go { color: #888888 } /* Generic.Output */ -.highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */ -.highlight .gs { font-weight: bold } /* Generic.Strong */ -.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ -.highlight .gt { color: #0044DD } /* Generic.Traceback */ -.highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */ -.highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */ -.highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */ -.highlight .kp { color: #008000 } /* Keyword.Pseudo */ -.highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */ -.highlight .kt { color: #B00040 } /* Keyword.Type */ -.highlight .m { color: #666666 } /* Literal.Number */ -.highlight .s { color: #BA2121 } /* Literal.String */ -.highlight .na { color: #7D9029 } /* Name.Attribute */ -.highlight .nb { color: #008000 } /* Name.Builtin */ -.highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */ -.highlight .no { color: #880000 } /* Name.Constant */ -.highlight .nd { color: #AA22FF } /* Name.Decorator */ -.highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */ -.highlight .ne { color: #D2413A; font-weight: bold } /* Name.Exception */ -.highlight .nf { color: #0000FF } /* Name.Function */ -.highlight .nl { color: #A0A000 } /* Name.Label */ -.highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */ -.highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */ -.highlight .nv { color: #19177C } /* Name.Variable */ -.highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */ -.highlight .w { color: #bbbbbb } /* Text.Whitespace */ -.highlight .mb { color: #666666 } /* Literal.Number.Bin */ -.highlight .mf { color: #666666 } /* Literal.Number.Float */ -.highlight .mh { color: #666666 } /* Literal.Number.Hex */ -.highlight .mi { color: #666666 } /* Literal.Number.Integer */ -.highlight .mo { color: #666666 } /* Literal.Number.Oct */ -.highlight .sb { color: #BA2121 } /* Literal.String.Backtick */ -.highlight .sc { color: #BA2121 } /* Literal.String.Char */ -.highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */ -.highlight .s2 { color: #BA2121 } /* Literal.String.Double */ -.highlight .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */ -.highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */ -.highlight .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */ -.highlight .sx { color: #008000 } /* Literal.String.Other */ -.highlight .sr { color: #BB6688 } /* Literal.String.Regex */ -.highlight .s1 { color: #BA2121 } /* Literal.String.Single */ -.highlight .ss { color: #19177C } /* Literal.String.Symbol */ -.highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */ -.highlight .vc { color: #19177C } /* Name.Variable.Class */ -.highlight .vg { color: #19177C } /* Name.Variable.Global */ -.highlight .vi { color: #19177C } /* Name.Variable.Instance */ -.highlight .il { color: #666666 } /* Literal.Number.Integer.Long */ - </style> - - -<style type="text/css"> -/* Overrides of notebook CSS for static HTML export */ -body { - overflow: visible; - padding: 8px; -} - -div#notebook { - overflow: visible; - border-top: none; -} - -@media print { - div.cell { - display: block; - page-break-inside: avoid; - } - div.output_wrapper { - display: block; - page-break-inside: avoid; - } - div.output { - display: block; - page-break-inside: avoid; - } -} -</style> - -<!-- Custom stylesheet, it must be in the same directory as the html file --> -<link rel="stylesheet" href="custom.css"> - -<!-- Loading mathjax macro --> -<!-- Load mathjax --> - <script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML"></script> - <!-- MathJax configuration --> - <script type="text/x-mathjax-config"> - MathJax.Hub.Config({ - tex2jax: { - inlineMath: [ ['$','$'], ["\\(","\\)"] ], - displayMath: [ ['$$','$$'], ["\\[","\\]"] ], - processEscapes: true, - processEnvironments: true - }, - // Center justify equations in code and markdown cells. Elsewhere - // we use CSS to left justify single line equations in code cells. - displayAlign: 'center', - "HTML-CSS": { - styles: {'.MathJax_Display': {"margin": 0}}, - linebreaks: { automatic: true } - } - }); - </script> - <!-- End of mathjax configuration --> - -</head> -<body> - <div tabindex="-1" id="notebook" class="border-box-sizing"> - <div class="container" id="notebook-container"> - -<div class="cell border-box-sizing text_cell rendered"> -<div class="prompt input_prompt"> -</div> -<div class="inner_cell"> -<div class="text_cell_render border-box-sizing rendered_html"> -<h2 id="This-example-illustrates-how-to-define-a-kinetic-model-using-the-scripting-interface.Normally-one-uses-standard-model-formats-like-SBML-or-kkit-to-concisely-define-kinetic-models,-but-in-some-cases-one-would-like-to-modify-the-model-through-the-script.">This example illustrates how to define a kinetic model using the scripting interface.Normally one uses standard model formats like SBML or kkit to concisely define kinetic models, but in some cases one would like to modify the model through the script.<a class="anchor-link" href="#This-example-illustrates-how-to-define-a-kinetic-model-using-the-scripting-interface.Normally-one-uses-standard-model-formats-like-SBML-or-kkit-to-concisely-define-kinetic-models,-but-in-some-cases-one-would-like-to-modify-the-model-through-the-script.">¶</a></h2><h2 id="This-example-creates-a-reaction-model">This example creates a reaction model<a class="anchor-link" href="#This-example-creates-a-reaction-model">¶</a></h2> -</div> -</div> -</div> -<div class="cell border-box-sizing code_cell rendered"> -<div class="input"> -<div class="prompt input_prompt">In [1]:</div> -<div class="inner_cell"> - <div class="input_area"> -<div class=" highlight hl-ipython2"><pre><span class="c"># first step is to import moose</span> -<span class="kn">import</span> <span class="nn">moose</span> -<span class="kn">import</span> <span class="nn">pylab</span> -<span class="kn">import</span> <span class="nn">numpy</span> -<span class="o">%</span><span class="k">matplotlib</span> inline -<span class="c"># create container for model</span> -<span class="n">model</span> <span class="o">=</span> <span class="n">moose</span><span class="o">.</span><span class="n">Neutral</span><span class="p">(</span> <span class="s">'model'</span> <span class="p">)</span> - -<span class="c">#create chemical compartment either `CubeMesh` or `CylMesh` and set the volume</span> -<span class="n">compartment</span> <span class="o">=</span> <span class="n">moose</span><span class="o">.</span><span class="n">CubeMesh</span><span class="p">(</span> <span class="s">'/model/compartment'</span> <span class="p">)</span> -<span class="n">compartment</span><span class="o">.</span><span class="n">volume</span> <span class="o">=</span> <span class="mf">1e-20</span> - -<span class="c"># create molecules and reactions</span> -<span class="n">sub</span> <span class="o">=</span> <span class="n">moose</span><span class="o">.</span><span class="n">Pool</span><span class="p">(</span> <span class="s">'/model/compartment/Sub'</span> <span class="p">)</span> -<span class="n">sub</span><span class="o">.</span><span class="n">concInit</span> <span class="o">=</span> <span class="mf">0.001</span> -<span class="n">prd</span> <span class="o">=</span> <span class="n">moose</span><span class="o">.</span><span class="n">Pool</span><span class="p">(</span> <span class="s">'/model/compartment/Prd'</span> <span class="p">)</span> -<span class="n">reac</span> <span class="o">=</span> <span class="n">moose</span><span class="o">.</span><span class="n">Reac</span><span class="p">(</span> <span class="s">'/model/compartment/reac'</span> <span class="p">)</span> -<span class="n">reac</span><span class="o">.</span><span class="n">Kf</span> <span class="o">=</span> <span class="mf">0.1</span> -<span class="n">reac</span><span class="o">.</span><span class="n">Kb</span> <span class="o">=</span> <span class="mf">0.001</span> - -<span class="c"># connect them up for reactions</span> -<span class="n">moose</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span> <span class="n">reac</span><span class="p">,</span> <span class="s">'sub'</span><span class="p">,</span> <span class="n">sub</span><span class="p">,</span> <span class="s">'reac'</span> <span class="p">)</span> -<span class="n">moose</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span> <span class="n">reac</span><span class="p">,</span> <span class="s">'prd'</span><span class="p">,</span> <span class="n">prd</span><span class="p">,</span> <span class="s">'reac'</span> <span class="p">)</span> - - -<span class="c">#setting up the KSolve</span> -<span class="n">gsolve</span> <span class="o">=</span> <span class="n">moose</span><span class="o">.</span><span class="n">Ksolve</span><span class="p">(</span> <span class="s">'/model/compartment/ksolve'</span> <span class="p">)</span> -<span class="n">stoich</span> <span class="o">=</span> <span class="n">moose</span><span class="o">.</span><span class="n">Stoich</span><span class="p">(</span> <span class="s">'/model/compartment/stoich'</span> <span class="p">)</span> -<span class="n">stoich</span><span class="o">.</span><span class="n">compartment</span> <span class="o">=</span> <span class="n">moose</span><span class="o">.</span><span class="n">element</span><span class="p">(</span> <span class="s">'/model/compartment'</span> <span class="p">)</span> -<span class="n">stoich</span><span class="o">.</span><span class="n">ksolve</span> <span class="o">=</span> <span class="n">gsolve</span> -<span class="n">stoich</span><span class="o">.</span><span class="n">path</span> <span class="o">=</span> <span class="s">"/model/compartment/##"</span> -<span class="n">moose</span><span class="o">.</span><span class="n">setClock</span><span class="p">(</span> <span class="mi">15</span><span class="p">,</span> <span class="mf">1.0</span> <span class="p">)</span> <span class="c"># clock for the solver</span> -<span class="n">moose</span><span class="o">.</span><span class="n">useClock</span><span class="p">(</span> <span class="mi">15</span><span class="p">,</span> <span class="s">'/model/compartment/gsolve'</span><span class="p">,</span> <span class="s">'process'</span> <span class="p">)</span> - -<span class="c"># Create the output tables</span> -<span class="n">graphs</span> <span class="o">=</span> <span class="n">moose</span><span class="o">.</span><span class="n">Neutral</span><span class="p">(</span> <span class="s">'/model/graphs'</span> <span class="p">)</span> -<span class="n">outputA</span> <span class="o">=</span> <span class="n">moose</span><span class="o">.</span><span class="n">Table2</span> <span class="p">(</span> <span class="s">'/model/graphs/concA'</span> <span class="p">)</span> -<span class="n">outputB</span> <span class="o">=</span> <span class="n">moose</span><span class="o">.</span><span class="n">Table2</span> <span class="p">(</span> <span class="s">'/model/graphs/concB'</span> <span class="p">)</span> - -<span class="c"># connect up the tables for plot substrate and product concentration</span> -<span class="n">moose</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span> <span class="n">outputA</span><span class="p">,</span> <span class="s">'requestOut'</span><span class="p">,</span> <span class="n">sub</span><span class="p">,</span> <span class="s">'getConc'</span> <span class="p">);</span> -<span class="n">moose</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span> <span class="n">outputB</span><span class="p">,</span> <span class="s">'requestOut'</span><span class="p">,</span> <span class="n">prd</span><span class="p">,</span> <span class="s">'getConc'</span> <span class="p">);</span> - -<span class="c"># reinit and run for 100s</span> -<span class="n">moose</span><span class="o">.</span><span class="n">reinit</span><span class="p">()</span> -<span class="n">moose</span><span class="o">.</span><span class="n">start</span><span class="p">(</span><span class="mi">100</span><span class="p">)</span> - -<span class="c">#setting up displaying plots in matplotlib</span> -<span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">moose</span><span class="o">.</span><span class="n">wildcardFind</span><span class="p">(</span> <span class="s">'/model/graphs/#[TYPE=Table2]'</span> <span class="p">):</span> - <span class="n">t</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span> <span class="mi">0</span><span class="p">,</span> <span class="n">x</span><span class="o">.</span><span class="n">vector</span><span class="o">.</span><span class="n">size</span><span class="p">,</span> <span class="mi">1</span> <span class="p">)</span> <span class="c">#sec</span> - <span class="n">pylab</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span> <span class="n">t</span><span class="p">,</span> <span class="n">x</span><span class="o">.</span><span class="n">vector</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="n">x</span><span class="o">.</span><span class="n">name</span><span class="p">,</span><span class="n">linewidth</span><span class="o">=</span><span class="mi">2</span><span class="p">)</span> -<span class="n">pylab</span><span class="o">.</span><span class="n">legend</span><span class="p">()</span> -<span class="n">pylab</span><span class="o">.</span><span class="n">show</span><span class="p">()</span> -</pre></div> - -</div> -</div> -</div> - -<div class="output_wrapper"> -<div class="output"> - - -<div class="output_area"><div class="prompt"></div> - - -<div class="output_png output_subarea "> -<img src="data:image/png;base64,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 -9rtbe7ffvdp7fctry/vcq73XV1GvcGx6aOFhmXPNldZ861pdWPGs6qz4VnWWPMt6K17jqy4seBYN -FlyLBkueZb0511xpwbVosOBZNPDN+CrdqznXXMnn/vFqxlfxuXxV01eeGU/NM+OpuRyuRveZy+Fq -/jvdrPG9rijov7b10LKxcZ7nsOPPHR9v7Dx6oh3YEfOf2f95uun09hYLzh+nVPUYjX/ZGSwtUV9V -BTseD2pj50Q6V1VDlV2BokAsUUg8bytuD5BWSj2klVKPwspCkaxSJiyqKnJv0DzYmSEOFg73na2c -5Y6WjgonK6cKJ0unCgdLh/sOFo1hb2FfaW9hX2lnYVdla25bbWfe+GprblttY25TY8O3qbExt6nh -mfHo718n4HA4rDPHQnuzlrZde7epwT2L7srTExKJBJ45OfAPCsI1Y+dD2q9aWW2bW57rl3Mvxz+n -PMc/X57vky/P97lZcdP7Xu29vq31d7BwuO9q61riZudW7GrrWiKwEZS62LiUudi4lPWz7ne3r3Xf -e32t+97rY92n3MnSqYJr9udZLISQ1vXIYhEaiiyJBJ6ZmQijYtGzqLVq3o17NwKySrJCfy/7/ZGr -ZVcHXS27OujO/ZZPLbTkWdaLHcUFYkdxwQCHAbf7O/S/42HvIRXZiwpF9qJCdzv3Ihtzm5quXA/S -uZycnCp6yiGz7sbJyamiM+bbI4tFWBgy9+zBzKwshD77LH4wdj6keRqthpt9NzvwQtGFoReKLgzN -KMoI/73090eaO2RkzjVX+jj75Af0Dbjh38c/x9fZN8/H2Sffx9kn39XWtYR+OEyLXC53NnYO5H/1 -yGIRGoosoPH0WWPnQv5Up6qzOl94fsRvt3979Kz07KjUwtThVcoqu6btvJy8boW6hmYFuwRfGeQy -6GqQS9A1H2effDr+T0j31SOLRVgYMoHGM6Iab50C+l+nEWi0Gm5GUUb4kZtHJp4oODHunPTcSKVG -aa7fZoDDgNvDhMPSh7oPvTBUOPRCmGtYpoOlw31j5UwIeTg98mworZaZ9euHu+Xl6HP7Ngb07487 -xs7LVFTUVTgl5yVPPZB34PEjN49MLK8r76P7jgMOC3ENufzYgMdOjfIYdXZU/1Fn3e3ci4yZLyGk -kUmeDcXhgIWFIfPYMUzIykIoFYvOVVpdKvjl+i+z99zYMzOlICVSrVX/9++Np6OnZIrvlIMTPCcc -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 -GWOoqqqy9fPzy8nOzh64bNmydQkJCcsZY4iPj1+xYsWKeGPn2lWxfv36pU8//fSP06dPT2KMwVS3 -xZuzj5QAAAN2SURBVHPPPZf43XffvcAYg0ql4ikUCgdT3BYSiUTs6el5q76+3oIxhjlz5uz8/vvv -Y01lW5w+ffrRS5cuhekXi5bW/dq1a4EhISFZSqWSL5FIxN7e3vkajcbM0PyNvoJtjXPnzo2YNGnS -Id3ntWvXrly7du1KY+dlrHjiiSf2Hj16dIK/v/+NkpISAWONBcXf3/+GsXPripBKpaLx48cfO3Hi -xFjdnoUpbguFQuHg6el5q+l0U9wW5eXlzn5+fjlyudxJpVLxpk2btv/IkSNRprQtJBKJWL9YtLTu -a9aseVv/6MykSZMOnT9/frihefeYZ3C3dD2HMXMyloKCAnFmZmZYREREWkvXrPR2S5Ys+eTDDz9c -pn91vyluC4lE4tmvX7+7CxYs2DJ48OBLCxcu/KampsbGFLeFs7Oz/K233lrfv3//O+7u7kWOjo6K -qKioo6a4LXQMXdOmf2ZrW35Pe0yxaOs1H71ddXW17ezZs3/57LPP/mpn97+Pk23tmpXe4tdff53m -4uJSFhYWlslauO7GVLaFWq3mXbp0afCrr7765aVLlwbb2NjUxMfHr9RvYyrb4ubNm96ffvrpmwUF -BeKioiL36upq2x9++OFZ/Tamsi2a86DXtDXVY4pFW6756O1UKhV/9uzZv8yfP3+b7nTjlq5Z6c3O -nTs3MikpKdrT01Myb9687SdOnBg3f/78baa4LUQiUaFIJCocOnToBQB48sknf7506dJgV1fXElPb -FhkZGeEjR44816dPn3Iej6eeNWvW7vPnz48wxW2h05HXtPWYYtGWaz56M8YY58UXX/wuMDAw+803 -3/xUN72la1Z6szVr1rwjlUo9JBKJ544dO2LGjRt3Ytu2bfNNcVu4urqWeHh4SHNzG59Ff+zYsQlB -QUHXpk+fvt/UtkVAQMCN1NTU4XV1dVaMMc6xY8cmBAYGZpvittDp0GvajD0g8yDR0nUbphC//fbb -aA6How0JCckKDQ3NDA0NzTx48OBkQ9esmEKkpKQ8pjsbylS3RVZWVkh4ePiF4ODgyzNnztytUCgc -THVbJCQkLNedOvvcc88lKpVKvqlsi5iYmO1ubm5FfD5fKRKJpJs3b17Qkde09biHHxFCCOl6PeYw -FCGEEOOhYkEIIaRVVCwIIYS0iooFIYSQVlGxIIQQ0ioqFoQQQlr1f/9CONCBwGUzAAAAAElFTkSu -QmCC -" -> -</div> - -</div> - -</div> -</div> - -</div> -<div class="cell border-box-sizing code_cell rendered"> -<div class="input"> -<div class="prompt input_prompt">In [ ]:</div> -<div class="inner_cell"> - <div class="input_area"> -<div class=" highlight hl-ipython2"><pre> -</pre></div> - -</div> -</div> -</div> - -</div> - </div> - </div> -</body> -</html> diff --git a/docs/user/snippets_tutorial/Makefile b/docs/user/snippets_tutorial/Makefile deleted file mode 100644 index 182070907cae692fced766d21141b1ccbc52a887..0000000000000000000000000000000000000000 --- a/docs/user/snippets_tutorial/Makefile +++ /dev/null @@ -1,153 +0,0 @@ -# Makefile for Sphinx documentation -# - -# You can set these variables from the command line. -SPHINXOPTS = -SPHINXBUILD = sphinx-build -PAPER = -BUILDDIR = _build - -# Internal variables. -PAPEROPT_a4 = -D latex_paper_size=a4 -PAPEROPT_letter = -D latex_paper_size=letter -ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . -# the i18n builder cannot share the environment and doctrees with the others -I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . - -.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext - -help: - @echo "Please use \`make <target>' where <target> is one of" - @echo " html to make standalone HTML files" - @echo " dirhtml to make HTML files named index.html in directories" - @echo " singlehtml to make a single large HTML file" - @echo " pickle to make pickle files" - @echo " json to make JSON files" - @echo " htmlhelp to make HTML files and a HTML help project" - @echo " qthelp to make HTML files and a qthelp project" - @echo " devhelp to make HTML files and a Devhelp project" - @echo " epub to make an epub" - @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" - @echo " latexpdf to make LaTeX files and run them through pdflatex" - @echo " text to make text files" - @echo " man to make manual pages" - @echo " texinfo to make Texinfo files" - @echo " info to make Texinfo files and run them through makeinfo" - @echo " gettext to make PO message catalogs" - @echo " changes to make an overview of all changed/added/deprecated items" - @echo " linkcheck to check all external links for integrity" - @echo " doctest to run all doctests embedded in the documentation (if enabled)" - -clean: - -rm -rf $(BUILDDIR)/* - -html: - $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." - -dirhtml: - $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." - -singlehtml: - $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml - @echo - @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." - -pickle: - $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle - @echo - @echo "Build finished; now you can process the pickle files." - -json: - $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json - @echo - @echo "Build finished; now you can process the JSON files." - -htmlhelp: - $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp - @echo - @echo "Build finished; now you can run HTML Help Workshop with the" \ - ".hhp project file in $(BUILDDIR)/htmlhelp." - -qthelp: - $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp - @echo - @echo "Build finished; now you can run "qcollectiongenerator" with the" \ - ".qhcp project file in $(BUILDDIR)/qthelp, like this:" - @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/MOOSE.qhcp" - @echo "To view the help file:" - @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/MOOSE.qhc" - -devhelp: - $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp - @echo - @echo "Build finished." - @echo "To view the help file:" - @echo "# mkdir -p $$HOME/.local/share/devhelp/MOOSE" - @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/MOOSE" - @echo "# devhelp" - -epub: - $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub - @echo - @echo "Build finished. The epub file is in $(BUILDDIR)/epub." - -latex: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo - @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." - @echo "Run \`make' in that directory to run these through (pdf)latex" \ - "(use \`make latexpdf' here to do that automatically)." - -latexpdf: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo "Running LaTeX files through pdflatex..." - $(MAKE) -C $(BUILDDIR)/latex all-pdf - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - -text: - $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text - @echo - @echo "Build finished. The text files are in $(BUILDDIR)/text." - -man: - $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man - @echo - @echo "Build finished. The manual pages are in $(BUILDDIR)/man." - -texinfo: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo - @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." - @echo "Run \`make' in that directory to run these through makeinfo" \ - "(use \`make info' here to do that automatically)." - -info: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo "Running Texinfo files through makeinfo..." - make -C $(BUILDDIR)/texinfo info - @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." - -gettext: - $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale - @echo - @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." - -changes: - $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes - @echo - @echo "The overview file is in $(BUILDDIR)/changes." - -linkcheck: - $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck - @echo - @echo "Link check complete; look for any errors in the above output " \ - "or in $(BUILDDIR)/linkcheck/output.txt." - -doctest: - $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest - @echo "Testing of doctests in the sources finished, look at the " \ - "results in $(BUILDDIR)/doctest/output.txt." diff --git a/docs/user/snippets_tutorial/SteadyState.html b/docs/user/snippets_tutorial/SteadyState.html deleted file mode 100644 index 3ab1625e9da32e16f58e46ac31b2f998e4891c60..0000000000000000000000000000000000000000 --- a/docs/user/snippets_tutorial/SteadyState.html +++ /dev/null @@ -1,919 +0,0 @@ -<!DOCTYPE html> -<html> -<head> - -<meta charset="utf-8" /> -<title>SteadyState</title> - -<script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.1.10/require.min.js"></script> -<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script> - -<style type="text/css"> - /*! -* -* Twitter Bootstrap -* -*//*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,*:before,*:after{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff !important}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before,.glyphicon-eur:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;line-height:1.42857143;color:#000;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:hover,a:focus{color:#23527c;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:3px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:2px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:18px;margin-bottom:18px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:normal;line-height:1;color:#777}h1,.h1,h2,.h2,h3,.h3{margin-top:18px;margin-bottom:9px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:9px;margin-bottom:9px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:33px}h2,.h2{font-size:27px}h3,.h3{font-size:23px}h4,.h4{font-size:17px}h5,.h5{font-size:13px}h6,.h6{font-size:12px}p{margin:0 0 9px}.lead{margin-bottom:18px;font-size:14px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:19.5px}}small,.small{font-size:92%}mark,.mark{background-color:#fcf8e3;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:8px;margin:36px 0 18px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:9px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:18px}dt,dd{line-height:1.42857143}dt{font-weight:bold}dd{margin-left:0}@media (min-width:541px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:9px 18px;margin:0 0 18px;font-size:inherit;border-left:5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:18px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:2px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:1px;box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}kbd kbd{padding:0;font-size:100%;font-weight:bold;box-shadow:none}pre{display:block;padding:8.5px;margin:0 0 9px;font-size:12px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:2px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:0;padding-right:0}@media (min-width:768px){.container{width:768px}}@media (min-width:992px){.container{width:940px}}@media (min-width:1200px){.container{width:1140px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:0;padding-right:0}.row{margin-left:0;margin-right:0}.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12{position:relative;min-height:1px;padding-left:0;padding-right:0}.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:18px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}.table-responsive{overflow-x:auto;min-height:.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:13.5px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:18px;font-size:19.5px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:13px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:32px;padding:6px 12px;font-size:13px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:2px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee;opacity:1}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type="date"],input[type="time"],input[type="datetime-local"],input[type="month"]{line-height:32px}input[type="date"].input-sm,input[type="time"].input-sm,input[type="datetime-local"].input-sm,input[type="month"].input-sm{line-height:30px}input[type="date"].input-lg,input[type="time"].input-lg,input[type="datetime-local"].input-lg,input[type="month"].input-lg{line-height:45px}}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:18px;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px \9}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"].disabled,input[type="checkbox"].disabled,fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm,.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:1px}select.input-sm,select.form-group-sm .form-control{height:30px;line-height:30px}textarea.input-sm,textarea.form-group-sm .form-control,select[multiple].input-sm,select[multiple].form-group-sm .form-control{height:auto}.input-lg,.form-group-lg .form-control{height:45px;padding:10px 16px;font-size:17px;line-height:1.33;border-radius:3px}select.input-lg,select.form-group-lg .form-control{height:45px;line-height:45px}textarea.input-lg,textarea.form-group-lg .form-control,select[multiple].input-lg,select[multiple].form-group-lg .form-control{height:auto}.has-feedback{position:relative}.has-feedback .form-control{padding-right:40px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:32px;height:32px;line-height:32px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback{width:45px;height:45px;line-height:45px}.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-success .form-control-feedback{color:#3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:23px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#404040}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:25px}.form-horizontal .form-group{margin-left:0;margin-right:0}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:7px}}.form-horizontal .has-feedback .form-control-feedback{right:0}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:14.3px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px}}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:13px;line-height:1.42857143;border-radius:2px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn.active.focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#333;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default.focus,.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled.focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default.focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary:hover,.btn-primary:focus,.btn-primary.focus,.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled.focus,.btn-primary[disabled].focus,fieldset[disabled] .btn-primary.focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success.focus,.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled.focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success.focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info.focus,.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled.focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info.focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning.focus,.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled.focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning.focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger.focus,.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled.focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger.focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{color:#337ab7;font-weight:normal;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#777;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:10px 16px;font-size:17px;line-height:1.33;border-radius:3px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:1px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:1px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none;visibility:hidden}.collapse.in{display:block;visibility:visible}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height, visibility;transition-property:height, visibility;-webkit-transition-duration:.35s;transition-duration:.35s;-webkit-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:13px;text-align:left;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);border-radius:2px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:8px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#262626;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;outline:0;background-color:#337ab7}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#777}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:541px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:2px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:2px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle="buttons"]>.btn input[type="radio"],[data-toggle="buttons"]>.btn-group>.btn input[type="radio"],[data-toggle="buttons"]>.btn input[type="checkbox"],[data-toggle="buttons"]>.btn-group>.btn input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:45px;padding:10px 16px;font-size:17px;line-height:1.33;border-radius:3px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:45px;line-height:45px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:1px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:13px;font-weight:normal;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:2px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:1px}.input-group-addon.input-lg{padding:10px 16px;font-size:17px;border-radius:3px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#777;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:8px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:2px 2px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:2px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:2px 2px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:2px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:2px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:2px 2px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none;visibility:hidden}.tab-content>.active{display:block;visibility:visible}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:30px;margin-bottom:18px;border:1px solid transparent}@media (min-width:541px){.navbar{border-radius:2px}}@media (min-width:541px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:0;padding-left:0;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:541px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block !important;visibility:visible !important;height:auto !important;padding-bottom:0;overflow:visible !important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-device-width:540px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}@media (min-width:541px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:541px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:541px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:6px 0;font-size:17px;line-height:18px;height:30px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:541px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:0}}.navbar-toggle{position:relative;float:right;margin-right:0;padding:9px 10px;margin-top:-2px;margin-bottom:-2px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:2px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:541px){.navbar-toggle{display:none}}.navbar-nav{margin:3px 0}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:18px}@media (max-width:540px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:18px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:541px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:6px;padding-bottom:6px}}.navbar-form{margin-left:0;margin-right:0;padding:10px 0;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:-1px;margin-bottom:-1px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:540px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:541px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-top-right-radius:2px;border-top-left-radius:2px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:-1px;margin-bottom:-1px}.navbar-btn.btn-sm{margin-top:0;margin-bottom:0}.navbar-btn.btn-xs{margin-top:4px;margin-bottom:4px}.navbar-text{margin-top:6px;margin-bottom:6px}@media (min-width:541px){.navbar-text{float:left;margin-left:0;margin-right:0}}@media (min-width:541px){.navbar-left{float:left !important;float:left}.navbar-right{float:right !important;float:right;margin-right:0}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#e7e7e7;color:#555}@media (max-width:540px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#333}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#080808;color:#fff}@media (max-width:540px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#fff}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:18px;list-style:none;background-color:#f5f5f5;border-radius:2px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#5e5e5e}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:18px 0;border-radius:2px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.42857143;text-decoration:none;color:#337ab7;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:2px;border-top-left-radius:2px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:2px;border-top-right-radius:2px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#777;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:17px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:1px;border-top-left-radius:1px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:1px;border-top-right-radius:1px}.pager{padding-left:0;margin:18px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#777;background-color:#fff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:hover,.label-default[href]:focus{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:bold;color:#fff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px 15px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:20px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{border-radius:3px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding:48px 0}.container .jumbotron,.container-fluid .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:58.5px}}.thumbnail{display:block;padding:4px;margin-bottom:18px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:2px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#000}.alert{padding:15px;margin-bottom:18px;border:1px solid transparent;border-radius:2px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:18px;margin-bottom:18px;background-color:#f5f5f5;border-radius:2px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:18px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-left,.media-right,.media-body{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:2px;border-top-left-radius:2px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:2px;border-bottom-left-radius:2px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;color:#555;background-color:#f5f5f5}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{background-color:#eee;color:#777;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:18px;background-color:#fff;border:1px solid transparent;border-radius:2px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:1px;border-top-left-radius:1px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:15px;color:inherit}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:1px;border-bottom-left-radius:1px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:1px;border-top-left-radius:1px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:1px;border-bottom-left-radius:1px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption{padding-left:15px;padding-right:15px}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:1px;border-top-left-radius:1px}.panel>.table:first-child>thead:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child{border-top-left-radius:1px;border-top-right-radius:1px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:1px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:1px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:1px;border-bottom-left-radius:1px}.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:1px;border-bottom-right-radius:1px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:1px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:1px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:18px}.panel-group .panel{margin-bottom:0;border-radius:2px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body,.panel-group .panel-heading+.panel-collapse>.list-group{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:2px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:3px}.well-sm{padding:9px;border-radius:1px}.close{float:right;font-size:19.5px;font-weight:bold;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);-o-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform 0.3s ease-out;-moz-transition:-moz-transform 0.3s ease-out;-o-transition:-o-transform 0.3s ease-out;transition:transform 0.3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.2);border-radius:3px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);background-clip:padding-box;outline:0}.modal-backdrop{position:absolute;top:0;right:0;left:0;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.42857143px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;visibility:visible;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-weight:normal;line-height:1.4;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:2px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{bottom:0;right:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1.42857143;text-align:left;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);border-radius:3px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);white-space:normal}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:13px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:2px 2px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,0.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,0.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{transition:transform .6s ease-in-out;backface-visibility:hidden;perspective:1000}.carousel-inner>.item.next,.carousel-inner>.item.active.right{transform:translate3d(100%, 0, 0);left:0}.carousel-inner>.item.prev,.carousel-inner>.item.active.left{transform:translate3d(-100%, 0, 0);left:0}.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right,.carousel-inner>.item.active{transform:translate3d(0, 0, 0);left:0}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:.5;filter:alpha(opacity=50);font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:linear-gradient(to right, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:linear-gradient(to right, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #fff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#fff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after,.item_buttons:before,.item_buttons:after{content:" ";display:table}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after,.item_buttons:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important;visibility:hidden !important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width:767px){.visible-xs{display:block !important}table.visible-xs{display:table}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width:767px){.visible-xs-block{display:block !important}}@media (max-width:767px){.visible-xs-inline{display:inline !important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block !important}table.visible-sm{display:table}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block !important}table.visible-md{display:table}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block !important}}@media (min-width:1200px){.visible-lg{display:block !important}table.visible-lg{display:table}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width:1200px){.visible-lg-block{display:block !important}}@media (min-width:1200px){.visible-lg-inline{display:inline !important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block !important}}@media (max-width:767px){.hidden-xs{display:none !important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none !important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none !important}}@media (min-width:1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}.visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}.visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}@media print{.hidden-print{display:none !important}}/*! -* -* Font Awesome -* -*//*! - * Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome - * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */@font-face{font-family:'FontAwesome';src:url('../components/font-awesome/fonts/fontawesome-webfont.eot?v=4.3.0');src:url('../components/font-awesome/fonts/fontawesome-webfont.eot?#iefix&v=4.3.0') format('embedded-opentype'),url('../components/font-awesome/fonts/fontawesome-webfont.woff2?v=4.3.0') format('woff2'),url('../components/font-awesome/fonts/fontawesome-webfont.woff?v=4.3.0') format('woff'),url('../components/font-awesome/fonts/fontawesome-webfont.ttf?v=4.3.0') format('truetype'),url('../components/font-awesome/fonts/fontawesome-webfont.svg?v=4.3.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0)}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-genderless:before,.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}/*! -* -* IPython base -* -*/.modal.fade .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}code{color:#000}pre{font-size:inherit;line-height:inherit}label{font-weight:normal}.border-box-sizing{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.corner-all{border-radius:2px}.no-padding{padding:0}.hbox{display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;display:flex;flex-direction:row;align-items:stretch}.hbox>*{-webkit-box-flex:0;-moz-box-flex:0;box-flex:0;flex:none}.vbox{display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;display:flex;flex-direction:column;align-items:stretch}.vbox>*{-webkit-box-flex:0;-moz-box-flex:0;box-flex:0;flex:none}.hbox.reverse,.vbox.reverse,.reverse{-webkit-box-direction:reverse;-moz-box-direction:reverse;box-direction:reverse;flex-direction:row-reverse}.hbox.box-flex0,.vbox.box-flex0,.box-flex0{-webkit-box-flex:0;-moz-box-flex:0;box-flex:0;flex:none;width:auto}.hbox.box-flex1,.vbox.box-flex1,.box-flex1{-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;flex:1}.hbox.box-flex,.vbox.box-flex,.box-flex{-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;flex:1}.hbox.box-flex2,.vbox.box-flex2,.box-flex2{-webkit-box-flex:2;-moz-box-flex:2;box-flex:2;flex:2}.box-group1{-webkit-box-flex-group:1;-moz-box-flex-group:1;box-flex-group:1}.box-group2{-webkit-box-flex-group:2;-moz-box-flex-group:2;box-flex-group:2}.hbox.start,.vbox.start,.start{-webkit-box-pack:start;-moz-box-pack:start;box-pack:start;justify-content:flex-start}.hbox.end,.vbox.end,.end{-webkit-box-pack:end;-moz-box-pack:end;box-pack:end;justify-content:flex-end}.hbox.center,.vbox.center,.center{-webkit-box-pack:center;-moz-box-pack:center;box-pack:center;justify-content:center}.hbox.baseline,.vbox.baseline,.baseline{-webkit-box-pack:baseline;-moz-box-pack:baseline;box-pack:baseline;justify-content:baseline}.hbox.stretch,.vbox.stretch,.stretch{-webkit-box-pack:stretch;-moz-box-pack:stretch;box-pack:stretch;justify-content:stretch}.hbox.align-start,.vbox.align-start,.align-start{-webkit-box-align:start;-moz-box-align:start;box-align:start;align-items:flex-start}.hbox.align-end,.vbox.align-end,.align-end{-webkit-box-align:end;-moz-box-align:end;box-align:end;align-items:flex-end}.hbox.align-center,.vbox.align-center,.align-center{-webkit-box-align:center;-moz-box-align:center;box-align:center;align-items:center}.hbox.align-baseline,.vbox.align-baseline,.align-baseline{-webkit-box-align:baseline;-moz-box-align:baseline;box-align:baseline;align-items:baseline}.hbox.align-stretch,.vbox.align-stretch,.align-stretch{-webkit-box-align:stretch;-moz-box-align:stretch;box-align:stretch;align-items:stretch}div.error{margin:2em;text-align:center}div.error>h1{font-size:500%;line-height:normal}div.error>p{font-size:200%;line-height:normal}div.traceback-wrapper{text-align:left;max-width:800px;margin:auto}body{background-color:#fff;position:absolute;left:0;right:0;top:0;bottom:0;overflow:visible}#header{display:none;background-color:#fff;position:relative;z-index:100}#header #header-container{padding-bottom:5px;padding-top:5px;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}#header .header-bar{width:100%;height:1px;background:#e7e7e7;margin-bottom:-1px}@media print{#header{display:none !important}}#header-spacer{width:100%;visibility:hidden}@media print{#header-spacer{display:none}}#ipython_notebook{padding-left:0;padding-top:1px;padding-bottom:1px}@media (max-width:991px){#ipython_notebook{margin-left:10px}}#noscript{width:auto;padding-top:16px;padding-bottom:16px;text-align:center;font-size:22px;color:red;font-weight:bold}#ipython_notebook img{height:28px}#site{width:100%;display:none;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;overflow:auto}@media print{#site{height:auto !important}}.ui-button .ui-button-text{padding:.2em .8em;font-size:77%}input.ui-button{padding:.3em .9em}span#login_widget{float:right}span#login_widget>.button,#logout{color:#333;background-color:#fff;border-color:#ccc}span#login_widget>.button:hover,#logout:hover,span#login_widget>.button:focus,#logout:focus,span#login_widget>.button.focus,#logout.focus,span#login_widget>.button:active,#logout:active,span#login_widget>.button.active,#logout.active,.open>.dropdown-togglespan#login_widget>.button,.open>.dropdown-toggle#logout{color:#333;background-color:#e6e6e6;border-color:#adadad}span#login_widget>.button:active,#logout:active,span#login_widget>.button.active,#logout.active,.open>.dropdown-togglespan#login_widget>.button,.open>.dropdown-toggle#logout{background-image:none}span#login_widget>.button.disabled,#logout.disabled,span#login_widget>.button[disabled],#logout[disabled],fieldset[disabled] span#login_widget>.button,fieldset[disabled] #logout,span#login_widget>.button.disabled:hover,#logout.disabled:hover,span#login_widget>.button[disabled]:hover,#logout[disabled]:hover,fieldset[disabled] span#login_widget>.button:hover,fieldset[disabled] #logout:hover,span#login_widget>.button.disabled:focus,#logout.disabled:focus,span#login_widget>.button[disabled]:focus,#logout[disabled]:focus,fieldset[disabled] span#login_widget>.button:focus,fieldset[disabled] #logout:focus,span#login_widget>.button.disabled.focus,#logout.disabled.focus,span#login_widget>.button[disabled].focus,#logout[disabled].focus,fieldset[disabled] span#login_widget>.button.focus,fieldset[disabled] #logout.focus,span#login_widget>.button.disabled:active,#logout.disabled:active,span#login_widget>.button[disabled]:active,#logout[disabled]:active,fieldset[disabled] span#login_widget>.button:active,fieldset[disabled] #logout:active,span#login_widget>.button.disabled.active,#logout.disabled.active,span#login_widget>.button[disabled].active,#logout[disabled].active,fieldset[disabled] span#login_widget>.button.active,fieldset[disabled] #logout.active{background-color:#fff;border-color:#ccc}span#login_widget>.button .badge,#logout .badge{color:#fff;background-color:#333}.nav-header{text-transform:none}#header>span{margin-top:10px}.modal_stretch .modal-dialog{display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;display:flex;flex-direction:column;align-items:stretch;min-height:80%}.modal_stretch .modal-dialog .modal-body{max-height:none;flex:1}@media (min-width:768px){.modal .modal-dialog{width:700px}}@media (min-width:768px){select.form-control{margin-left:12px;margin-right:12px}}/*! -* -* IPython auth -* -*/.center-nav{display:inline-block;margin-bottom:-4px}/*! -* -* IPython tree view -* -*/.alternate_upload{background-color:none;display:inline}.alternate_upload.form{padding:0;margin:0}.alternate_upload input.fileinput{display:inline;opacity:0;z-index:2;width:12ex;margin-right:-12ex}.alternate_upload .input-overlay{display:inline-block;font-weight:bold;line-height:1em}ul#tabs{margin-bottom:4px}ul#tabs a{padding-top:6px;padding-bottom:4px}ul.breadcrumb a:focus,ul.breadcrumb a:hover{text-decoration:none}ul.breadcrumb i.icon-home{font-size:16px;margin-right:4px}ul.breadcrumb span{color:#5e5e5e}.list_toolbar{padding:4px 0 4px 0;vertical-align:middle}.list_toolbar .tree-buttons{padding-top:1px}.dynamic-buttons{display:inline-block}.list_toolbar [class*="span"]{min-height:24px}.list_header{font-weight:bold;background-color:#eee}.list_placeholder{font-weight:bold;padding-top:4px;padding-bottom:4px;padding-left:7px;padding-right:7px}.list_container{margin-top:4px;margin-bottom:20px;border:1px solid #ddd;border-radius:2px}.list_container>div{border-bottom:1px solid #ddd}.list_container>div:hover .list-item{background-color:red}.list_container>div:last-child{border:none}.list_item:hover .list_item{background-color:#ddd}.list_item a{text-decoration:none}.list_item:hover{background-color:#fafafa}.action_col{text-align:right}.list_header>div,.list_item>div{padding-top:4px;padding-bottom:4px;padding-left:7px;padding-right:7px;line-height:22px}.list_header>div input,.list_item>div input{margin-right:7px;margin-left:14px;vertical-align:baseline;line-height:22px;position:relative;top:-1px}.list_header>div .item_link,.list_item>div .item_link{margin-left:-1px;vertical-align:baseline;line-height:22px}.new-file input[type=checkbox]{visibility:hidden}.item_name{line-height:22px;height:24px}.item_icon{font-size:14px;color:#5e5e5e;margin-right:7px;margin-left:7px;line-height:22px;vertical-align:baseline}.item_buttons{padding-top:4px;line-height:1em;margin-left:-5px}.item_buttons .btn-group,.item_buttons .input-group{float:left}.item_buttons>.btn,.item_buttons>.btn-group,.item_buttons>.input-group{margin-left:5px}.item_buttons .btn{min-width:13ex}.item_buttons .running-indicator{color:#5cb85c}.toolbar_info{height:24px;line-height:24px}input.nbname_input,input.engine_num_input{padding-top:3px;padding-bottom:3px;height:22px;line-height:14px;margin:0}input.engine_num_input{width:60px}.highlight_text{color:blue}#project_name{display:inline-block;padding-left:7px;margin-left:-2px}#project_name>.breadcrumb{padding:0;margin-bottom:0;background-color:transparent;font-weight:bold}#tree-selector{display:inline-block;padding-right:0}#tree-selector input[type=checkbox]{margin-left:7px;vertical-align:baseline}.tab-content .row{margin-left:0;margin-right:0}.folder_icon:before{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0);content:"\f114"}.folder_icon:before.pull-left{margin-right:.3em}.folder_icon:before.pull-right{margin-left:.3em}.notebook_icon:before{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0);content:"\f02d";position:relative;top:-1px}.notebook_icon:before.pull-left{margin-right:.3em}.notebook_icon:before.pull-right{margin-left:.3em}.running_notebook_icon:before{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0);content:"\f02d";position:relative;top:-1px;color:#5cb85c}.running_notebook_icon:before.pull-left{margin-right:.3em}.running_notebook_icon:before.pull-right{margin-left:.3em}.file_icon:before{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0);content:"\f016";position:relative;top:-2px}.file_icon:before.pull-left{margin-right:.3em}.file_icon:before.pull-right{margin-left:.3em}#notebook_toolbar .pull-right{padding-top:0;margin-right:-1px}ul#new-menu{left:auto;right:0}.kernel-menu-icon{padding-right:12px;width:24px;content:"\f096"}.kernel-menu-icon:before{content:"\f096"}.kernel-menu-icon-current:before{content:"\f00c"}#tab_content{padding-top:20px}#running .panel-group .panel{margin-top:3px;margin-bottom:1em}#running .panel-group .panel .panel-heading{background-color:#eee;padding-top:4px;padding-bottom:4px;padding-left:7px;padding-right:7px;line-height:22px}#running .panel-group .panel .panel-heading a:focus,#running .panel-group .panel .panel-heading a:hover{text-decoration:none}#running .panel-group .panel .panel-body{padding:0}#running .panel-group .panel .panel-body .list_container{margin-top:0;margin-bottom:0;border:0;border-radius:0}#running .panel-group .panel .panel-body .list_container .list_item{border-bottom:1px solid #ddd}#running .panel-group .panel .panel-body .list_container .list_item:last-child{border-bottom:0}.delete-button{display:none}.duplicate-button{display:none}.rename-button{display:none}.shutdown-button{display:none}/*! -* -* IPython text editor webapp -* -*/.selected-keymap i.fa{padding:0 5px}.selected-keymap i.fa:before{content:"\f00c"}#mode-menu{overflow:auto;max-height:20em}.edit_app #header{-webkit-box-shadow:0 0 12px 1px rgba(87,87,87,0.2);box-shadow:0 0 12px 1px rgba(87,87,87,0.2)}.edit_app #menubar .navbar{margin-bottom:-1px}.dirty-indicator{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0);width:20px}.dirty-indicator.pull-left{margin-right:.3em}.dirty-indicator.pull-right{margin-left:.3em}.dirty-indicator-dirty{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0);width:20px}.dirty-indicator-dirty.pull-left{margin-right:.3em}.dirty-indicator-dirty.pull-right{margin-left:.3em}.dirty-indicator-clean{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0);width:20px}.dirty-indicator-clean.pull-left{margin-right:.3em}.dirty-indicator-clean.pull-right{margin-left:.3em}.dirty-indicator-clean:before{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0);content:"\f00c"}.dirty-indicator-clean:before.pull-left{margin-right:.3em}.dirty-indicator-clean:before.pull-right{margin-left:.3em}#filename{font-size:16pt;display:table;padding:0 5px}#current-mode{padding-left:5px;padding-right:5px}#texteditor-backdrop{padding-top:20px;padding-bottom:20px}@media not print{#texteditor-backdrop{background-color:#eee}}@media print{#texteditor-backdrop #texteditor-container .CodeMirror-gutter,#texteditor-backdrop #texteditor-container .CodeMirror-gutters{background-color:#fff}}@media not print{#texteditor-backdrop #texteditor-container .CodeMirror-gutter,#texteditor-backdrop #texteditor-container .CodeMirror-gutters{background-color:#fff}}@media not print{#texteditor-backdrop #texteditor-container{padding:0;background-color:#fff;-webkit-box-shadow:0 0 12px 1px rgba(87,87,87,0.2);box-shadow:0 0 12px 1px rgba(87,87,87,0.2)}}/*! -* -* IPython notebook -* -*/.ansibold{font-weight:bold}.ansiblack{color:black}.ansired{color:darkred}.ansigreen{color:darkgreen}.ansiyellow{color:#c4a000}.ansiblue{color:darkblue}.ansipurple{color:darkviolet}.ansicyan{color:steelblue}.ansigray{color:gray}.ansibgblack{background-color:black}.ansibgred{background-color:red}.ansibggreen{background-color:green}.ansibgyellow{background-color:yellow}.ansibgblue{background-color:blue}.ansibgpurple{background-color:magenta}.ansibgcyan{background-color:cyan}.ansibggray{background-color:gray}div.cell{border:1px solid transparent;display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;display:flex;flex-direction:column;align-items:stretch;border-radius:2px;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;border-width:thin;border-style:solid;width:100%;padding:5px;margin:0;outline:none}div.cell.selected{border-color:#ababab}@media print{div.cell.selected{border-color:transparent}}.edit_mode div.cell.selected{border-color:green}@media print{.edit_mode div.cell.selected{border-color:transparent}}.prompt{min-width:14ex;padding:.4em;margin:0;font-family:monospace;text-align:right;line-height:1.21429em}@media (max-width:540px){.prompt{text-align:left}}div.inner_cell{display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;display:flex;flex-direction:column;align-items:stretch;-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;flex:1}@-moz-document url-prefix(){div.inner_cell{overflow-x:hidden}}div.input_area{border:1px solid #cfcfcf;border-radius:2px;background:#f7f7f7;line-height:1.21429em}div.prompt:empty{padding-top:0;padding-bottom:0}div.unrecognized_cell{padding:5px 5px 5px 0;display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;display:flex;flex-direction:row;align-items:stretch}div.unrecognized_cell .inner_cell{border-radius:2px;padding:5px;font-weight:bold;color:red;border:1px solid #cfcfcf;background:#eaeaea}div.unrecognized_cell .inner_cell a{color:inherit;text-decoration:none}div.unrecognized_cell .inner_cell a:hover{color:inherit;text-decoration:none}@media (max-width:540px){div.unrecognized_cell>div.prompt{display:none}}@media print{div.code_cell{page-break-inside:avoid}}div.input{page-break-inside:avoid;display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;display:flex;flex-direction:row;align-items:stretch}@media (max-width:540px){div.input{display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;display:flex;flex-direction:column;align-items:stretch}}div.input_prompt{color:navy;border-top:1px solid transparent}div.input_area>div.highlight{margin:.4em;border:none;padding:0;background-color:transparent}div.input_area>div.highlight>pre{margin:0;border:none;padding:0;background-color:transparent}.CodeMirror{line-height:1.21429em;font-size:14px;height:auto;background:none}.CodeMirror-scroll{overflow-y:hidden;overflow-x:auto}.CodeMirror-lines{padding:.4em}.CodeMirror-linenumber{padding:0 8px 0 4px}.CodeMirror-gutters{border-bottom-left-radius:2px;border-top-left-radius:2px}.CodeMirror pre{padding:0;border:0;border-radius:0}.highlight-base{color:#000}.highlight-variable{color:#000}.highlight-variable-2{color:#1a1a1a}.highlight-variable-3{color:#333}.highlight-string{color:#ba2121}.highlight-comment{color:#408080;font-style:italic}.highlight-number{color:#080}.highlight-atom{color:#88f}.highlight-keyword{color:#008000;font-weight:bold}.highlight-builtin{color:#008000}.highlight-error{color:#f00}.highlight-operator{color:#a2f;font-weight:bold}.highlight-meta{color:#a2f}.highlight-def{color:#00f}.highlight-string-2{color:#f50}.highlight-qualifier{color:#555}.highlight-bracket{color:#997}.highlight-tag{color:#170}.highlight-attribute{color:#00c}.highlight-header{color:blue}.highlight-quote{color:#090}.highlight-link{color:#00c}.cm-s-ipython span.cm-keyword{color:#008000;font-weight:bold}.cm-s-ipython span.cm-atom{color:#88f}.cm-s-ipython span.cm-number{color:#080}.cm-s-ipython span.cm-def{color:#00f}.cm-s-ipython span.cm-variable{color:#000}.cm-s-ipython span.cm-operator{color:#a2f;font-weight:bold}.cm-s-ipython span.cm-variable-2{color:#1a1a1a}.cm-s-ipython span.cm-variable-3{color:#333}.cm-s-ipython span.cm-comment{color:#408080;font-style:italic}.cm-s-ipython span.cm-string{color:#ba2121}.cm-s-ipython span.cm-string-2{color:#f50}.cm-s-ipython span.cm-meta{color:#a2f}.cm-s-ipython span.cm-qualifier{color:#555}.cm-s-ipython span.cm-builtin{color:#008000}.cm-s-ipython span.cm-bracket{color:#997}.cm-s-ipython span.cm-tag{color:#170}.cm-s-ipython span.cm-attribute{color:#00c}.cm-s-ipython span.cm-header{color:blue}.cm-s-ipython span.cm-quote{color:#090}.cm-s-ipython span.cm-link{color:#00c}.cm-s-ipython span.cm-error{color:#f00}.cm-s-ipython span.cm-tab{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII=);background-position:right;background-repeat:no-repeat}div.output_wrapper{position:relative;display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;display:flex;flex-direction:column;align-items:stretch}div.output_scroll{height:24em;width:100%;overflow:auto;border-radius:2px;-webkit-box-shadow:inset 0 2px 8px rgba(0,0,0,0.8);box-shadow:inset 0 2px 8px rgba(0,0,0,0.8);display:block}div.output_collapsed{margin:0;padding:0;display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;display:flex;flex-direction:column;align-items:stretch}div.out_prompt_overlay{height:100%;padding:0 .4em;position:absolute;border-radius:2px}div.out_prompt_overlay:hover{-webkit-box-shadow:inset 0 0 1px #000;box-shadow:inset 0 0 1px #000;background:rgba(240,240,240,0.5)}div.output_prompt{color:darkred}div.output_area{padding:0;page-break-inside:avoid;display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;display:flex;flex-direction:row;align-items:stretch}div.output_area .MathJax_Display{text-align:left !important}div.output_area .rendered_html table{margin-left:0;margin-right:0}div.output_area .rendered_html img{margin-left:0;margin-right:0}.output{display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;display:flex;flex-direction:column;align-items:stretch}@media (max-width:540px){div.output_area{display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;display:flex;flex-direction:column;align-items:stretch}}div.output_area pre{margin:0;padding:0;border:0;vertical-align:baseline;color:black;background-color:transparent;border-radius:0}div.output_subarea{padding:.4em;-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;flex:1}div.output_text{text-align:left;color:#000;line-height:1.21429em}div.output_stderr{background:#fdd}div.output_latex{text-align:left}div.output_javascript:empty{padding:0}.js-error{color:darkred}div.raw_input_container{font-family:monospace;padding-top:5px}input.raw_input{font-family:inherit;font-size:inherit;color:inherit;width:auto;vertical-align:baseline;padding:0 .25em;margin:0 .25em}input.raw_input:focus{box-shadow:none}p.p-space{margin-bottom:10px}div.output_unrecognized{padding:5px;font-weight:bold;color:red}div.output_unrecognized a{color:inherit;text-decoration:none}div.output_unrecognized a:hover{color:inherit;text-decoration:none}.rendered_html{color:#000}.rendered_html em{font-style:italic}.rendered_html strong{font-weight:bold}.rendered_html u{text-decoration:underline}.rendered_html :link{text-decoration:underline}.rendered_html :visited{text-decoration:underline}.rendered_html h1{font-size:185.7%;margin:1.08em 0 0 0;font-weight:bold;line-height:1}.rendered_html h2{font-size:157.1%;margin:1.27em 0 0 0;font-weight:bold;line-height:1}.rendered_html h3{font-size:128.6%;margin:1.55em 0 0 0;font-weight:bold;line-height:1}.rendered_html h4{font-size:100%;margin:2em 0 0 0;font-weight:bold;line-height:1}.rendered_html h5{font-size:100%;margin:2em 0 0 0;font-weight:bold;line-height:1;font-style:italic}.rendered_html h6{font-size:100%;margin:2em 0 0 0;font-weight:bold;line-height:1;font-style:italic}.rendered_html h1:first-child{margin-top:.538em}.rendered_html h2:first-child{margin-top:.636em}.rendered_html h3:first-child{margin-top:.777em}.rendered_html h4:first-child{margin-top:1em}.rendered_html h5:first-child{margin-top:1em}.rendered_html h6:first-child{margin-top:1em}.rendered_html ul{list-style:disc;margin:0 2em;padding-left:0}.rendered_html ul ul{list-style:square;margin:0 2em}.rendered_html ul ul ul{list-style:circle;margin:0 2em}.rendered_html ol{list-style:decimal;margin:0 2em;padding-left:0}.rendered_html ol ol{list-style:upper-alpha;margin:0 2em}.rendered_html ol ol ol{list-style:lower-alpha;margin:0 2em}.rendered_html ol ol ol ol{list-style:lower-roman;margin:0 2em}.rendered_html ol ol ol ol ol{list-style:decimal;margin:0 2em}.rendered_html *+ul{margin-top:1em}.rendered_html *+ol{margin-top:1em}.rendered_html hr{color:black;background-color:black}.rendered_html pre{margin:1em 2em}.rendered_html pre,.rendered_html code{border:0;background-color:#fff;color:#000;font-size:100%;padding:0}.rendered_html blockquote{margin:1em 2em}.rendered_html table{margin-left:auto;margin-right:auto;border:1px solid black;border-collapse:collapse}.rendered_html tr,.rendered_html th,.rendered_html td{border:1px solid black;border-collapse:collapse;margin:1em 2em}.rendered_html td,.rendered_html th{text-align:left;vertical-align:middle;padding:4px}.rendered_html th{font-weight:bold}.rendered_html *+table{margin-top:1em}.rendered_html p{text-align:left}.rendered_html *+p{margin-top:1em}.rendered_html img{display:block;margin-left:auto;margin-right:auto}.rendered_html *+img{margin-top:1em}div.text_cell{display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;display:flex;flex-direction:row;align-items:stretch}@media (max-width:540px){div.text_cell>div.prompt{display:none}}div.text_cell_render{outline:none;resize:none;width:inherit;border-style:none;padding:.5em .5em .5em .4em;color:#000;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}a.anchor-link:link{text-decoration:none;padding:0 20px;visibility:hidden}h1:hover .anchor-link,h2:hover .anchor-link,h3:hover .anchor-link,h4:hover .anchor-link,h5:hover .anchor-link,h6:hover .anchor-link{visibility:visible}.text_cell.rendered .input_area{display:none}.text_cell.unrendered .text_cell_render{display:none}.cm-header-1,.cm-header-2,.cm-header-3,.cm-header-4,.cm-header-5,.cm-header-6{font-weight:bold;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}.cm-header-1{font-size:185.7%}.cm-header-2{font-size:157.1%}.cm-header-3{font-size:128.6%}.cm-header-4{font-size:110%}.cm-header-5{font-size:100%;font-style:italic}.cm-header-6{font-size:100%;font-style:italic}.widget-interact>div,.widget-interact>input{padding:2.5px}.widget-area{page-break-inside:avoid;display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;display:flex;flex-direction:row;align-items:stretch}.widget-area .widget-subarea{padding:.44em .4em .4em 1px;margin-left:6px;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;display:flex;flex-direction:column;align-items:stretch;-webkit-box-flex:2;-moz-box-flex:2;box-flex:2;flex:2;-webkit-box-align:start;-moz-box-align:start;box-align:start;align-items:flex-start}.widget-area.connection-problems .prompt:after{content:"\f127";font-family:'FontAwesome';color:#d9534f;font-size:14px;top:3px;padding:3px}.slide-track{border:1px solid #ccc;background:#fff;border-radius:2px}.widget-hslider{padding-left:8px;padding-right:2px;overflow:visible;width:350px;height:5px;max-height:5px;margin-top:13px;margin-bottom:10px;border:1px solid #ccc;background:#fff;border-radius:2px;display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;display:flex;flex-direction:row;align-items:stretch}.widget-hslider .ui-slider{border:0;background:none;display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;display:flex;flex-direction:row;align-items:stretch;-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;flex:1}.widget-hslider .ui-slider .ui-slider-handle{width:12px;height:28px;margin-top:-8px;border-radius:2px}.widget-hslider .ui-slider .ui-slider-range{height:12px;margin-top:-4px;background:#eee}.widget-vslider{padding-bottom:5px;overflow:visible;width:5px;max-width:5px;height:250px;margin-left:12px;border:1px solid #ccc;background:#fff;border-radius:2px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;display:flex;flex-direction:column;align-items:stretch}.widget-vslider .ui-slider{border:0;background:none;margin-left:-4px;margin-top:5px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;display:flex;flex-direction:column;align-items:stretch;-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;flex:1}.widget-vslider .ui-slider .ui-slider-handle{width:28px;height:12px;margin-left:-9px;border-radius:2px}.widget-vslider .ui-slider .ui-slider-range{width:12px;margin-left:-1px;background:#eee}.widget-text{width:350px;margin:0}.widget-listbox{width:350px;margin-bottom:0}.widget-numeric-text{width:150px;margin:0}.widget-progress{margin-top:6px;min-width:350px}.widget-progress .progress-bar{-webkit-transition:none;-moz-transition:none;-ms-transition:none;-o-transition:none;transition:none}.widget-combo-btn{min-width:125px}.widget_item .dropdown-menu li a{color:inherit}.widget-hbox{display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;display:flex;flex-direction:row;align-items:stretch}.widget-hbox input[type="checkbox"]{margin-top:9px;margin-bottom:10px}.widget-hbox .widget-label{min-width:10ex;padding-right:8px;padding-top:5px;text-align:right;vertical-align:text-top}.widget-hbox .widget-readout{padding-left:8px;padding-top:5px;text-align:left;vertical-align:text-top}.widget-vbox{display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;display:flex;flex-direction:column;align-items:stretch}.widget-vbox .widget-label{padding-bottom:5px;text-align:center;vertical-align:text-bottom}.widget-vbox .widget-readout{padding-top:5px;text-align:center;vertical-align:text-top}.widget-box{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;-webkit-box-align:start;-moz-box-align:start;box-align:start;align-items:flex-start}.widget-radio-box{display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;display:flex;flex-direction:column;align-items:stretch;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding-top:4px}.widget-radio-box label{margin-top:0}.widget-radio{margin-left:20px}/*! -* -* IPython notebook webapp -* -*/@media (max-width:767px){.notebook_app{padding-left:0;padding-right:0}}#ipython-main-app{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;height:100%}div#notebook_panel{margin:0;padding:0;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;height:100%}#notebook{font-size:14px;line-height:20px;overflow-y:hidden;overflow-x:auto;width:100%;padding-top:20px;margin:0;outline:none;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;min-height:100%}@media not print{#notebook-container{padding:15px;background-color:#fff;min-height:0;-webkit-box-shadow:0 0 12px 1px rgba(87,87,87,0.2);box-shadow:0 0 12px 1px rgba(87,87,87,0.2)}}div.ui-widget-content{border:1px solid #ababab;outline:none}pre.dialog{background-color:#f7f7f7;border:1px solid #ddd;border-radius:2px;padding:.4em;padding-left:2em}p.dialog{padding:.2em}pre,code,kbd,samp{white-space:pre-wrap}#fonttest{font-family:monospace}p{margin-bottom:0}.end_space{min-height:100px;transition:height .2s ease}.notebook_app #header{-webkit-box-shadow:0 0 12px 1px rgba(87,87,87,0.2);box-shadow:0 0 12px 1px rgba(87,87,87,0.2)}@media not print{.notebook_app{background-color:#eee}}.celltoolbar{border:thin solid #cfcfcf;border-bottom:none;background:#eee;border-radius:2px 2px 0 0;width:100%;height:29px;padding-right:4px;display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;display:flex;flex-direction:row;align-items:stretch;-webkit-box-pack:end;-moz-box-pack:end;box-pack:end;justify-content:flex-end}@media print{.celltoolbar{display:none}}.ctb_hideshow{display:none;vertical-align:bottom}.ctb_global_show .ctb_show.ctb_hideshow{display:block}.ctb_global_show .ctb_show+.input_area,.ctb_global_show .ctb_show+div.text_cell_input,.ctb_global_show .ctb_show~div.text_cell_render{border-top-right-radius:0;border-top-left-radius:0}.ctb_global_show .ctb_show~div.text_cell_render{border:1px solid #cfcfcf}.celltoolbar{font-size:87%;padding-top:3px}.celltoolbar select{display:block;width:100%;height:32px;padding:6px 12px;font-size:13px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:2px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s;height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:1px;width:inherit;font-size:inherit;height:22px;padding:0;display:inline-block}.celltoolbar select:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6)}.celltoolbar select::-moz-placeholder{color:#999;opacity:1}.celltoolbar select:-ms-input-placeholder{color:#999}.celltoolbar select::-webkit-input-placeholder{color:#999}.celltoolbar select[disabled],.celltoolbar select[readonly],fieldset[disabled] .celltoolbar select{cursor:not-allowed;background-color:#eee;opacity:1}textarea.celltoolbar select{height:auto}select.celltoolbar select{height:30px;line-height:30px}textarea.celltoolbar select,select[multiple].celltoolbar select{height:auto}.celltoolbar label{margin-left:5px;margin-right:5px}.completions{position:absolute;z-index:10;overflow:hidden;border:1px solid #ababab;border-radius:2px;-webkit-box-shadow:0 6px 10px -1px #adadad;box-shadow:0 6px 10px -1px #adadad}.completions select{background:white;outline:none;border:none;padding:0;margin:0;overflow:auto;font-family:monospace;font-size:110%;color:#000;width:auto}.completions select option.context{color:#286090}#kernel_logo_widget{float:right !important;float:right}#kernel_logo_widget .current_kernel_logo{display:none;margin-top:-1px;margin-bottom:-1px;width:32px;height:32px}#menubar{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;margin-top:1px}#menubar .navbar{border-top:1px;border-radius:0 0 2px 2px;margin-bottom:0}#menubar .navbar-toggle{float:left;padding-top:7px;padding-bottom:7px;border:none}#menubar .navbar-collapse{clear:left}.nav-wrapper{border-bottom:1px solid #e7e7e7}i.menu-icon{padding-top:4px}ul#help_menu li a{overflow:hidden;padding-right:2.2em}ul#help_menu li a i{margin-right:-1.2em}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px}.dropdown-submenu:hover>.dropdown-menu{display:block}.dropdown-submenu>a:after{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0);display:block;content:"\f0da";float:right;color:#333;margin-top:2px;margin-right:-10px}.dropdown-submenu>a:after.pull-left{margin-right:.3em}.dropdown-submenu>a:after.pull-right{margin-left:.3em}.dropdown-submenu:hover>a:after{color:#262626}.dropdown-submenu.pull-left{float:none}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px}#notification_area{float:right !important;float:right;z-index:10}.indicator_area{float:right !important;float:right;color:#777;margin-left:5px;margin-right:5px;width:11px;z-index:10;text-align:center;width:auto}#kernel_indicator{float:right !important;float:right;color:#777;margin-left:5px;margin-right:5px;width:11px;z-index:10;text-align:center;width:auto;border-left:1px solid}#kernel_indicator .kernel_indicator_name{padding-left:5px;padding-right:5px}#modal_indicator{float:right !important;float:right;color:#777;margin-left:5px;margin-right:5px;width:11px;z-index:10;text-align:center;width:auto}#readonly-indicator{float:right !important;float:right;color:#777;margin-left:5px;margin-right:5px;width:11px;z-index:10;text-align:center;width:auto;margin-top:2px;margin-bottom:0;margin-left:0;margin-right:0;display:none}.modal_indicator:before{width:1.28571429em;text-align:center}.edit_mode .modal_indicator:before{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0);content:"\f040"}.edit_mode .modal_indicator:before.pull-left{margin-right:.3em}.edit_mode .modal_indicator:before.pull-right{margin-left:.3em}.command_mode .modal_indicator:before{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0);content:' '}.command_mode .modal_indicator:before.pull-left{margin-right:.3em}.command_mode .modal_indicator:before.pull-right{margin-left:.3em}.kernel_idle_icon:before{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0);content:"\f10c"}.kernel_idle_icon:before.pull-left{margin-right:.3em}.kernel_idle_icon:before.pull-right{margin-left:.3em}.kernel_busy_icon:before{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0);content:"\f111"}.kernel_busy_icon:before.pull-left{margin-right:.3em}.kernel_busy_icon:before.pull-right{margin-left:.3em}.kernel_dead_icon:before{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0);content:"\f1e2"}.kernel_dead_icon:before.pull-left{margin-right:.3em}.kernel_dead_icon:before.pull-right{margin-left:.3em}.kernel_disconnected_icon:before{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0);content:"\f127"}.kernel_disconnected_icon:before.pull-left{margin-right:.3em}.kernel_disconnected_icon:before.pull-right{margin-left:.3em}.notification_widget{color:#777;z-index:10;background:rgba(240,240,240,0.5);color:#333;background-color:#fff;border-color:#ccc}.notification_widget:hover,.notification_widget:focus,.notification_widget.focus,.notification_widget:active,.notification_widget.active,.open>.dropdown-toggle.notification_widget{color:#333;background-color:#e6e6e6;border-color:#adadad}.notification_widget:active,.notification_widget.active,.open>.dropdown-toggle.notification_widget{background-image:none}.notification_widget.disabled,.notification_widget[disabled],fieldset[disabled] .notification_widget,.notification_widget.disabled:hover,.notification_widget[disabled]:hover,fieldset[disabled] .notification_widget:hover,.notification_widget.disabled:focus,.notification_widget[disabled]:focus,fieldset[disabled] .notification_widget:focus,.notification_widget.disabled.focus,.notification_widget[disabled].focus,fieldset[disabled] .notification_widget.focus,.notification_widget.disabled:active,.notification_widget[disabled]:active,fieldset[disabled] .notification_widget:active,.notification_widget.disabled.active,.notification_widget[disabled].active,fieldset[disabled] .notification_widget.active{background-color:#fff;border-color:#ccc}.notification_widget .badge{color:#fff;background-color:#333}.notification_widget.warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.notification_widget.warning:hover,.notification_widget.warning:focus,.notification_widget.warning.focus,.notification_widget.warning:active,.notification_widget.warning.active,.open>.dropdown-toggle.notification_widget.warning{color:#fff;background-color:#ec971f;border-color:#d58512}.notification_widget.warning:active,.notification_widget.warning.active,.open>.dropdown-toggle.notification_widget.warning{background-image:none}.notification_widget.warning.disabled,.notification_widget.warning[disabled],fieldset[disabled] .notification_widget.warning,.notification_widget.warning.disabled:hover,.notification_widget.warning[disabled]:hover,fieldset[disabled] .notification_widget.warning:hover,.notification_widget.warning.disabled:focus,.notification_widget.warning[disabled]:focus,fieldset[disabled] .notification_widget.warning:focus,.notification_widget.warning.disabled.focus,.notification_widget.warning[disabled].focus,fieldset[disabled] .notification_widget.warning.focus,.notification_widget.warning.disabled:active,.notification_widget.warning[disabled]:active,fieldset[disabled] .notification_widget.warning:active,.notification_widget.warning.disabled.active,.notification_widget.warning[disabled].active,fieldset[disabled] .notification_widget.warning.active{background-color:#f0ad4e;border-color:#eea236}.notification_widget.warning .badge{color:#f0ad4e;background-color:#fff}.notification_widget.success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.notification_widget.success:hover,.notification_widget.success:focus,.notification_widget.success.focus,.notification_widget.success:active,.notification_widget.success.active,.open>.dropdown-toggle.notification_widget.success{color:#fff;background-color:#449d44;border-color:#398439}.notification_widget.success:active,.notification_widget.success.active,.open>.dropdown-toggle.notification_widget.success{background-image:none}.notification_widget.success.disabled,.notification_widget.success[disabled],fieldset[disabled] .notification_widget.success,.notification_widget.success.disabled:hover,.notification_widget.success[disabled]:hover,fieldset[disabled] .notification_widget.success:hover,.notification_widget.success.disabled:focus,.notification_widget.success[disabled]:focus,fieldset[disabled] .notification_widget.success:focus,.notification_widget.success.disabled.focus,.notification_widget.success[disabled].focus,fieldset[disabled] .notification_widget.success.focus,.notification_widget.success.disabled:active,.notification_widget.success[disabled]:active,fieldset[disabled] .notification_widget.success:active,.notification_widget.success.disabled.active,.notification_widget.success[disabled].active,fieldset[disabled] .notification_widget.success.active{background-color:#5cb85c;border-color:#4cae4c}.notification_widget.success .badge{color:#5cb85c;background-color:#fff}.notification_widget.info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.notification_widget.info:hover,.notification_widget.info:focus,.notification_widget.info.focus,.notification_widget.info:active,.notification_widget.info.active,.open>.dropdown-toggle.notification_widget.info{color:#fff;background-color:#31b0d5;border-color:#269abc}.notification_widget.info:active,.notification_widget.info.active,.open>.dropdown-toggle.notification_widget.info{background-image:none}.notification_widget.info.disabled,.notification_widget.info[disabled],fieldset[disabled] .notification_widget.info,.notification_widget.info.disabled:hover,.notification_widget.info[disabled]:hover,fieldset[disabled] .notification_widget.info:hover,.notification_widget.info.disabled:focus,.notification_widget.info[disabled]:focus,fieldset[disabled] .notification_widget.info:focus,.notification_widget.info.disabled.focus,.notification_widget.info[disabled].focus,fieldset[disabled] .notification_widget.info.focus,.notification_widget.info.disabled:active,.notification_widget.info[disabled]:active,fieldset[disabled] .notification_widget.info:active,.notification_widget.info.disabled.active,.notification_widget.info[disabled].active,fieldset[disabled] .notification_widget.info.active{background-color:#5bc0de;border-color:#46b8da}.notification_widget.info .badge{color:#5bc0de;background-color:#fff}.notification_widget.danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.notification_widget.danger:hover,.notification_widget.danger:focus,.notification_widget.danger.focus,.notification_widget.danger:active,.notification_widget.danger.active,.open>.dropdown-toggle.notification_widget.danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.notification_widget.danger:active,.notification_widget.danger.active,.open>.dropdown-toggle.notification_widget.danger{background-image:none}.notification_widget.danger.disabled,.notification_widget.danger[disabled],fieldset[disabled] .notification_widget.danger,.notification_widget.danger.disabled:hover,.notification_widget.danger[disabled]:hover,fieldset[disabled] .notification_widget.danger:hover,.notification_widget.danger.disabled:focus,.notification_widget.danger[disabled]:focus,fieldset[disabled] .notification_widget.danger:focus,.notification_widget.danger.disabled.focus,.notification_widget.danger[disabled].focus,fieldset[disabled] .notification_widget.danger.focus,.notification_widget.danger.disabled:active,.notification_widget.danger[disabled]:active,fieldset[disabled] .notification_widget.danger:active,.notification_widget.danger.disabled.active,.notification_widget.danger[disabled].active,fieldset[disabled] .notification_widget.danger.active{background-color:#d9534f;border-color:#d43f3a}.notification_widget.danger .badge{color:#d9534f;background-color:#fff}div#pager{background-color:#fff;font-size:14px;line-height:20px;overflow:hidden;display:none;position:fixed;bottom:0;width:100%;max-height:50%;padding-top:8px;-webkit-box-shadow:0 0 12px 1px rgba(87,87,87,0.2);box-shadow:0 0 12px 1px rgba(87,87,87,0.2);z-index:100;top:auto !important}div#pager pre{line-height:1.21429em;color:#000;background-color:#f7f7f7;padding:.4em}div#pager #pager-button-area{position:absolute;top:8px;right:20px}div#pager #pager-contents{position:relative;overflow:auto;width:100%;height:100%}div#pager #pager-contents #pager-container{position:relative;padding:15px 0;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}div#pager .ui-resizable-handle{top:0;height:8px;background:#f7f7f7;border-top:1px solid #cfcfcf;border-bottom:1px solid #cfcfcf}div#pager .ui-resizable-handle::after{content:'';top:2px;left:50%;height:3px;width:30px;margin-left:-15px;position:absolute;border-top:1px solid #cfcfcf}.quickhelp{display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;display:flex;flex-direction:row;align-items:stretch}.shortcut_key{display:inline-block;width:20ex;text-align:right;font-family:monospace}.shortcut_descr{display:inline-block;-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;flex:1}span.save_widget{margin-top:6px}span.save_widget span.filename{height:1em;line-height:1em;padding:3px;margin-left:16px;border:none;font-size:146.5%;border-radius:2px}span.save_widget span.filename:hover{background-color:#e6e6e6}span.checkpoint_status,span.autosave_status{font-size:small}@media (max-width:767px){span.save_widget{font-size:small}span.checkpoint_status,span.autosave_status{display:none}}@media (min-width:768px) and (max-width:991px){span.checkpoint_status{display:none}span.autosave_status{font-size:x-small}}.toolbar{padding:0;margin-left:-5px;margin-top:2px;margin-bottom:5px;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.toolbar select,.toolbar label{width:auto;vertical-align:middle;margin-right:2px;margin-bottom:0;display:inline;font-size:92%;margin-left:.3em;margin-right:.3em;padding:0;padding-top:3px}.toolbar .btn{padding:2px 8px}.toolbar .btn-group{margin-top:0;margin-left:5px}#maintoolbar{margin-bottom:-3px;margin-top:-8px;border:0;min-height:27px;margin-left:0;padding-top:11px;padding-bottom:3px}#maintoolbar .navbar-text{float:none;vertical-align:middle;text-align:right;margin-left:5px;margin-right:0;margin-top:0}.select-xs{height:24px}@-moz-keyframes fadeOut{from{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOut{from{opacity:1}to{opacity:0}}@-moz-keyframes fadeIn{from{opacity:0}to{opacity:1}}@-webkit-keyframes fadeIn{from{opacity:0}to{opacity:1}}.bigtooltip{overflow:auto;height:200px;-webkit-transition-property:height;-webkit-transition-duration:500ms;-moz-transition-property:height;-moz-transition-duration:500ms;transition-property:height;transition-duration:500ms}.smalltooltip{-webkit-transition-property:height;-webkit-transition-duration:500ms;-moz-transition-property:height;-moz-transition-duration:500ms;transition-property:height;transition-duration:500ms;text-overflow:ellipsis;overflow:hidden;height:80px}.tooltipbuttons{position:absolute;padding-right:15px;top:0;right:0}.tooltiptext{padding-right:30px}.ipython_tooltip{max-width:700px;-webkit-animation:fadeOut 400ms;-moz-animation:fadeOut 400ms;animation:fadeOut 400ms;-webkit-animation:fadeIn 400ms;-moz-animation:fadeIn 400ms;animation:fadeIn 400ms;vertical-align:middle;background-color:#f7f7f7;overflow:visible;border:#ababab 1px solid;outline:none;padding:3px;margin:0;padding-left:7px;font-family:monospace;min-height:50px;-moz-box-shadow:0 6px 10px -1px #adadad;-webkit-box-shadow:0 6px 10px -1px #adadad;box-shadow:0 6px 10px -1px #adadad;border-radius:2px;position:absolute;z-index:1000}.ipython_tooltip a{float:right}.ipython_tooltip .tooltiptext pre{border:0;border-radius:0;font-size:100%;background-color:#f7f7f7}.pretooltiparrow{left:0;margin:0;top:-16px;width:40px;height:16px;overflow:hidden;position:absolute}.pretooltiparrow:before{background-color:#f7f7f7;border:1px #ababab solid;z-index:11;content:"";position:absolute;left:15px;top:10px;width:25px;height:25px;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg)}.terminal-app{background:#eee}.terminal-app #header{background:#fff;-webkit-box-shadow:0 0 12px 1px rgba(87,87,87,0.2);box-shadow:0 0 12px 1px rgba(87,87,87,0.2)}.terminal-app .terminal{float:left;font-family:monospace;color:white;background:black;padding:.4em;border-radius:2px;-webkit-box-shadow:0 0 12px 1px rgba(87,87,87,0.4);box-shadow:0 0 12px 1px rgba(87,87,87,0.4)}.terminal-app .terminal,.terminal-app .terminal dummy-screen{line-height:1em;font-size:14px}.terminal-app .terminal-cursor{color:black;background:white}.terminal-app #terminado-container{margin-top:20px}/*# sourceMappingURL=style.min.css.map */ - </style> -<style type="text/css"> - .highlight .hll { background-color: #ffffcc } -.highlight { background: #f8f8f8; } -.highlight .c { color: #408080; font-style: italic } /* Comment */ -.highlight .err { border: 1px solid #FF0000 } /* Error */ -.highlight .k { color: #008000; font-weight: bold } /* Keyword */ -.highlight .o { color: #666666 } /* Operator */ -.highlight .cm { color: #408080; font-style: italic } /* Comment.Multiline */ -.highlight .cp { color: #BC7A00 } /* Comment.Preproc */ -.highlight .c1 { color: #408080; font-style: italic } /* Comment.Single */ -.highlight .cs { color: #408080; font-style: italic } /* Comment.Special */ -.highlight .gd { color: #A00000 } /* Generic.Deleted */ -.highlight .ge { font-style: italic } /* Generic.Emph */ -.highlight .gr { color: #FF0000 } /* Generic.Error */ -.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ -.highlight .gi { color: #00A000 } /* Generic.Inserted */ -.highlight .go { color: #888888 } /* Generic.Output */ -.highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */ -.highlight .gs { font-weight: bold } /* Generic.Strong */ -.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ -.highlight .gt { color: #0044DD } /* Generic.Traceback */ -.highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */ -.highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */ -.highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */ -.highlight .kp { color: #008000 } /* Keyword.Pseudo */ -.highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */ -.highlight .kt { color: #B00040 } /* Keyword.Type */ -.highlight .m { color: #666666 } /* Literal.Number */ -.highlight .s { color: #BA2121 } /* Literal.String */ -.highlight .na { color: #7D9029 } /* Name.Attribute */ -.highlight .nb { color: #008000 } /* Name.Builtin */ -.highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */ -.highlight .no { color: #880000 } /* Name.Constant */ -.highlight .nd { color: #AA22FF } /* Name.Decorator */ -.highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */ -.highlight .ne { color: #D2413A; font-weight: bold } /* Name.Exception */ -.highlight .nf { color: #0000FF } /* Name.Function */ -.highlight .nl { color: #A0A000 } /* Name.Label */ -.highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */ -.highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */ -.highlight .nv { color: #19177C } /* Name.Variable */ -.highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */ -.highlight .w { color: #bbbbbb } /* Text.Whitespace */ -.highlight .mb { color: #666666 } /* Literal.Number.Bin */ -.highlight .mf { color: #666666 } /* Literal.Number.Float */ -.highlight .mh { color: #666666 } /* Literal.Number.Hex */ -.highlight .mi { color: #666666 } /* Literal.Number.Integer */ -.highlight .mo { color: #666666 } /* Literal.Number.Oct */ -.highlight .sb { color: #BA2121 } /* Literal.String.Backtick */ -.highlight .sc { color: #BA2121 } /* Literal.String.Char */ -.highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */ -.highlight .s2 { color: #BA2121 } /* Literal.String.Double */ -.highlight .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */ -.highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */ -.highlight .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */ -.highlight .sx { color: #008000 } /* Literal.String.Other */ -.highlight .sr { color: #BB6688 } /* Literal.String.Regex */ -.highlight .s1 { color: #BA2121 } /* Literal.String.Single */ -.highlight .ss { color: #19177C } /* Literal.String.Symbol */ -.highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */ -.highlight .vc { color: #19177C } /* Name.Variable.Class */ -.highlight .vg { color: #19177C } /* Name.Variable.Global */ -.highlight .vi { color: #19177C } /* Name.Variable.Instance */ -.highlight .il { color: #666666 } /* Literal.Number.Integer.Long */ - </style> - - -<style type="text/css"> -/* Overrides of notebook CSS for static HTML export */ -body { - overflow: visible; - padding: 8px; -} - -div#notebook { - overflow: visible; - border-top: none; -} - -@media print { - div.cell { - display: block; - page-break-inside: avoid; - } - div.output_wrapper { - display: block; - page-break-inside: avoid; - } - div.output { - display: block; - page-break-inside: avoid; - } -} -</style> - -<!-- Custom stylesheet, it must be in the same directory as the html file --> -<link rel="stylesheet" href="custom.css"> - -<!-- Loading mathjax macro --> -<!-- Load mathjax --> - <script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML"></script> - <!-- MathJax configuration --> - <script type="text/x-mathjax-config"> - MathJax.Hub.Config({ - tex2jax: { - inlineMath: [ ['$','$'], ["\\(","\\)"] ], - displayMath: [ ['$$','$$'], ["\\[","\\]"] ], - processEscapes: true, - processEnvironments: true - }, - // Center justify equations in code and markdown cells. Elsewhere - // we use CSS to left justify single line equations in code cells. - displayAlign: 'center', - "HTML-CSS": { - styles: {'.MathJax_Display': {"margin": 0}}, - linebreaks: { automatic: true } - } - }); - </script> - <!-- End of mathjax configuration --> - -</head> -<body> - <div tabindex="-1" id="notebook" class="border-box-sizing"> - <div class="container" id="notebook-container"> - -<div class="cell border-box-sizing text_cell rendered"> -<div class="prompt input_prompt"> -</div> -<div class="inner_cell"> -<div class="text_cell_render border-box-sizing rendered_html"> -<h1 id="Finding-a-Steady-State-in-MOOSE">Finding a Steady State in MOOSE<a class="anchor-link" href="#Finding-a-Steady-State-in-MOOSE">¶</a></h1> -</div> -</div> -</div> -<div class="cell border-box-sizing code_cell rendered"> -<div class="input"> -<div class="prompt input_prompt">In [1]:</div> -<div class="inner_cell"> - <div class="input_area"> -<div class=" highlight hl-ipython2"><pre><span class="kn">import</span> <span class="nn">math</span> -<span class="kn">import</span> <span class="nn">pylab</span> -<span class="kn">import</span> <span class="nn">numpy</span> -<span class="kn">import</span> <span class="nn">moose</span> - -<span class="o">%</span><span class="k">matplotlib</span> inline - -<span class="k">def</span> <span class="nf">displayPlots</span><span class="p">():</span> - <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">moose</span><span class="o">.</span><span class="n">wildcardFind</span><span class="p">(</span> <span class="s">'/model/graphs/#'</span> <span class="p">):</span> - <span class="n">t</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span> <span class="mi">0</span><span class="p">,</span> <span class="n">x</span><span class="o">.</span><span class="n">vector</span><span class="o">.</span><span class="n">size</span><span class="p">,</span> <span class="mi">1</span> <span class="p">)</span> <span class="c">#sec</span> - <span class="n">pylab</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span> <span class="n">t</span><span class="p">,</span> <span class="n">x</span><span class="o">.</span><span class="n">vector</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="n">x</span><span class="o">.</span><span class="n">name</span> <span class="p">)</span> - <span class="n">pylab</span><span class="o">.</span><span class="n">legend</span><span class="p">()</span> - <span class="n">pylab</span><span class="o">.</span><span class="n">show</span><span class="p">()</span> - -<span class="k">def</span> <span class="nf">getState</span><span class="p">(</span> <span class="n">ksolve</span><span class="p">,</span> <span class="n">state</span> <span class="p">):</span> - <span class="n">state</span><span class="o">.</span><span class="n">randomInit</span><span class="p">()</span> - <span class="n">moose</span><span class="o">.</span><span class="n">start</span><span class="p">(</span> <span class="mf">0.1</span> <span class="p">)</span> <span class="c"># Run the model for 2 seconds.</span> - <span class="n">state</span><span class="o">.</span><span class="n">settle</span><span class="p">()</span> - <span class="n">moose</span><span class="o">.</span><span class="n">start</span><span class="p">(</span> <span class="mf">20.0</span> <span class="p">)</span> <span class="c"># Run model for 10 seconds, just for display</span> - - -<span class="k">def</span> <span class="nf">main</span><span class="p">():</span> - <span class="c">#One can build own model or load pre-existing model</span> - <span class="c">#Here we have taken pre-existing model which is in cspace format</span> - <span class="n">moose</span><span class="o">.</span><span class="n">loadModel</span><span class="p">(</span> <span class="s">'../../../../moose-examples/genesis/M1719.cspace'</span><span class="p">,</span> <span class="s">'/model'</span><span class="p">,</span> <span class="s">'ee'</span> <span class="p">)</span> - <span class="n">compartment</span> <span class="o">=</span> <span class="n">moose</span><span class="o">.</span><span class="n">element</span><span class="p">(</span> <span class="s">'model/kinetics'</span> <span class="p">)</span> - <span class="n">compartment</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="s">'compartment'</span> - <span class="c">#setting up the solver</span> - <span class="n">ksolve</span> <span class="o">=</span> <span class="n">moose</span><span class="o">.</span><span class="n">Ksolve</span><span class="p">(</span> <span class="s">'/model/compartment/ksolve'</span> <span class="p">)</span> - <span class="n">stoich</span> <span class="o">=</span> <span class="n">moose</span><span class="o">.</span><span class="n">Stoich</span><span class="p">(</span> <span class="s">'/model/compartment/stoich'</span> <span class="p">)</span> - <span class="n">stoich</span><span class="o">.</span><span class="n">compartment</span> <span class="o">=</span> <span class="n">compartment</span> - <span class="n">stoich</span><span class="o">.</span><span class="n">ksolve</span> <span class="o">=</span> <span class="n">ksolve</span> - <span class="n">stoich</span><span class="o">.</span><span class="n">path</span> <span class="o">=</span> <span class="s">"/model/compartment/##"</span> - <span class="c">#setting up state</span> - <span class="n">state</span> <span class="o">=</span> <span class="n">moose</span><span class="o">.</span><span class="n">SteadyState</span><span class="p">(</span> <span class="s">'/model/compartment/state'</span> <span class="p">)</span> - - <span class="n">moose</span><span class="o">.</span><span class="n">reinit</span><span class="p">()</span> - <span class="n">state</span><span class="o">.</span><span class="n">stoich</span> <span class="o">=</span> <span class="n">stoich</span> - <span class="n">state</span><span class="o">.</span><span class="n">convergenceCriterion</span> <span class="o">=</span> <span class="mf">1e-7</span> - - <span class="n">a</span> <span class="o">=</span> <span class="n">moose</span><span class="o">.</span><span class="n">element</span><span class="p">(</span> <span class="s">'/model/compartment/a'</span> <span class="p">)</span> - <span class="n">b</span> <span class="o">=</span> <span class="n">moose</span><span class="o">.</span><span class="n">element</span><span class="p">(</span> <span class="s">'/model/compartment/b'</span> <span class="p">)</span> - <span class="n">c</span> <span class="o">=</span> <span class="n">moose</span><span class="o">.</span><span class="n">element</span><span class="p">(</span> <span class="s">'/model/compartment/c'</span> <span class="p">)</span> - - <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">100</span> <span class="p">):</span> - <span class="n">getState</span><span class="p">(</span> <span class="n">ksolve</span><span class="p">,</span> <span class="n">state</span> <span class="p">)</span> - - <span class="n">moose</span><span class="o">.</span><span class="n">start</span><span class="p">(</span> <span class="mf">100.0</span> <span class="p">)</span> <span class="c"># Run the model for 100 seconds.</span> - - <span class="n">b</span> <span class="o">=</span> <span class="n">moose</span><span class="o">.</span><span class="n">element</span><span class="p">(</span> <span class="s">'/model/compartment/b'</span> <span class="p">)</span> - <span class="n">c</span> <span class="o">=</span> <span class="n">moose</span><span class="o">.</span><span class="n">element</span><span class="p">(</span> <span class="s">'/model/compartment/c'</span> <span class="p">)</span> - - <span class="c"># move most molecules over to b</span> - <span class="n">b</span><span class="o">.</span><span class="n">conc</span> <span class="o">=</span> <span class="n">b</span><span class="o">.</span><span class="n">conc</span> <span class="o">+</span> <span class="n">c</span><span class="o">.</span><span class="n">conc</span> <span class="o">*</span> <span class="mf">0.95</span> - <span class="n">c</span><span class="o">.</span><span class="n">conc</span> <span class="o">=</span> <span class="n">c</span><span class="o">.</span><span class="n">conc</span> <span class="o">*</span> <span class="mf">0.05</span> - <span class="n">moose</span><span class="o">.</span><span class="n">start</span><span class="p">(</span> <span class="mf">100.0</span> <span class="p">)</span> <span class="c"># Run the model for 100 seconds.</span> - - <span class="c"># move most molecules back to a</span> - <span class="n">c</span><span class="o">.</span><span class="n">conc</span> <span class="o">=</span> <span class="n">c</span><span class="o">.</span><span class="n">conc</span> <span class="o">+</span> <span class="n">b</span><span class="o">.</span><span class="n">conc</span> <span class="o">*</span> <span class="mf">0.95</span> - <span class="n">b</span><span class="o">.</span><span class="n">conc</span> <span class="o">=</span> <span class="n">b</span><span class="o">.</span><span class="n">conc</span> <span class="o">*</span> <span class="mf">0.05</span> - <span class="n">moose</span><span class="o">.</span><span class="n">start</span><span class="p">(</span> <span class="mf">100.0</span> <span class="p">)</span> <span class="c"># Run the model for 100 seconds.</span> - - <span class="c"># Iterate through all plots, dump their contents to data.plot.</span> - <span class="n">displayPlots</span><span class="p">()</span> - - <span class="n">quit</span><span class="p">()</span> - -<span class="c"># Run the 'main' if this script is executed standalone.</span> -<span class="k">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">'__main__'</span><span class="p">:</span> - <span class="n">main</span><span class="p">()</span> -</pre></div> - -</div> -</div> -</div> - -<div class="output_wrapper"> -<div class="output"> - - -<div class="output_area"><div class="prompt"></div> - - -<div class="output_png output_subarea "> -<img src="data:image/png;base64,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 -BHzF/wdYh8uE9Ct2cwAAAABJRU5ErkJggg== -" -> -</div> - -</div> - -</div> -</div> - -</div> -<div class="cell border-box-sizing code_cell rendered"> -<div class="input"> -<div class="prompt input_prompt">In [ ]:</div> -<div class="inner_cell"> - <div class="input_area"> -<div class=" highlight hl-ipython2"><pre> -</pre></div> - -</div> -</div> -</div> - -</div> - </div> - </div> -</body> -</html> diff --git a/docs/user/snippets_tutorial/_templates/layout.html b/docs/user/snippets_tutorial/_templates/layout.html deleted file mode 100644 index 75df84926246f910c90895c58dcb9a5bce462bb4..0000000000000000000000000000000000000000 --- a/docs/user/snippets_tutorial/_templates/layout.html +++ /dev/null @@ -1,33 +0,0 @@ -{% extends "!layout.html" %} -{% block rootrellink %} - <li><a href="http://moose.ncbs.res.in/">MOOSE Homepage</a> »</li> - {{ super() }} -{% endblock %} -{% block sidebartitle %} - - {% if logo and theme_logo_only %} - <a href="http://moose.ncbs.res.in"> - - {% else %} - <a href="http://moose.ncbs.res.in/" class="icon icon-home"> {{ project }} - {% endif %} - - {% if logo %} - {# Not strictly valid HTML, but it's the only way to display/scale it properly, without weird scripting or heaps of work #} - <img src="{{ pathto('_static/' + logo, 1) }}" class="logo" /> - {% endif %} - </a> - {% if theme_display_version %} - {%- set nav_version = version %} - {% if READTHEDOCS and current_version %} - {%- set nav_version = current_version %} - {% endif %} - {% if nav_version %} - <div class="version"> - {{ nav_version }} - </div> - {% endif %} - {% endif %} - - {% include "searchbox.html" %} -{% endblock %} diff --git a/docs/user/snippets_tutorial/conf.py b/docs/user/snippets_tutorial/conf.py deleted file mode 100644 index b2b36b187bef3aa98b9dd0a21e98f19ce5d15ad2..0000000000000000000000000000000000000000 --- a/docs/user/snippets_tutorial/conf.py +++ /dev/null @@ -1,250 +0,0 @@ -# -*- coding: utf-8 -*- -# -# MOOSE documentation build configuration file, created by -# sphinx-quickstart on Tue Jul 1 19:05:47 2014. -# -# This file is execfile()d with the current directory set to its containing dir. -# -# Note that not all possible configuration values are present in this -# autogenerated file. -# -# All configuration values have a default; values that are commented out -# serve to show the default. -import sys, os - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -#sys.path.insert(0, os.path.abspath('../../moose/moose-core/python')) -sys.path.append(os.path.abspath('../../../../moose-examples/snippets')) -# -- General configuration ----------------------------------------------------- - -# If your documentation needs a minimal Sphinx version, state it here. -#needs_sphinx = '1.0' - -# Add any Sphinx extension module names here, as strings. They can be extensions -# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. -extensions = ['sphinx.ext.autodoc', - 'sphinx.ext.mathjax', - 'sphinx.ext.autosummary', - 'sphinx.ext.viewcode', - 'numpydoc'] - -# Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] - -# The suffix of source filenames. -source_suffix = '.rst' - -# The encoding of source files. -#source_encoding = 'utf-8-sig' - -# The master toctree document. -master_doc = 'index' - -# General information about the project. -project = u'MOOSE' -copyright = u'2016' - -# The version info for the project you're documenting, acts as replacement for -# |version| and |release|, also used in various other places throughout the -# built documents. -# -# The short X.Y version. -version = '3.2' -# The full version, including alpha/beta/rc tags. -release = '3.2' - -# The language for content autogenerated by Sphinx. Refer to documentation -# for a list of supported languages. -#language = None - -# There are two options for replacing |today|: either, you set today to some -# non-false value, then it is used: -#today = '' -# Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -exclude_patterns = ['_build'] - -# The reST default role (used for this markup: `text`) to use for all documents. -#default_role = None - -# If true, '()' will be appended to :func: etc. cross-reference text. -add_function_parentheses = True - -# If true, the current module name will be prepended to all description -# unit titles (such as .. function::). -#add_module_names = True - -# If true, sectionauthor and moduleauthor directives will be shown in the -# output. They are ignored by default. -#show_authors = True - -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' - -# A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] - - -# -- Options for HTML output --------------------------------------------------- - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -html_theme = 'sphinx_rtd_theme' -#html_theme = 'better' - -# Theme options are theme-specific and customize the look and feel of a theme -# further. For a list of options available for each theme, see the -# documentation. -# html_theme_options = {'stickysidebar': 'true', -# 'sidebarwidth': '300'} - -# Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [better_theme_path] - -# The name for this set of Sphinx documents. If None, it defaults to -# "<project> v<release> documentation". -#html_title = None - -# A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None - -# The name of an image file (relative to this directory) to place at the top -# of the sidebar. -html_logo = '../../images/moose_logo.png' - -# The name of an image file (within the static path) to use as favicon of the -# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 -# pixels large. -#html_favicon = None - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['_static'] - -# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, -# using the given strftime format. -#html_last_updated_fmt = '%b %d, %Y' - -# If true, SmartyPants will be used to convert quotes and dashes to -# typographically correct entities. -#html_use_smartypants = True - -# Custom sidebar templates, maps document names to template names. -#html_sidebars = {} - -# Additional templates that should be rendered to pages, maps page names to -# template names. -#html_additional_pages = {} - -# If false, no module index is generated. -#html_domain_indices = True - -# If false, no index is generated. -#html_use_index = True - -# If true, the index is split into individual pages for each letter. -#html_split_index = False - -# If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True - -# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -#html_show_sphinx = True - -# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -#html_show_copyright = True - -# If true, an OpenSearch description file will be output, and all pages will -# contain a <link> tag referring to it. The value of this option must be the -# base URL from which the finished HTML is served. -#html_use_opensearch = '' - -# This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None - -# Output file base name for HTML help builder. -htmlhelp_basename = 'MOOSEdoc' - - -# -- Options for LaTeX output -------------------------------------------------- - -latex_elements = { -# The paper size ('letterpaper' or 'a4paper'). -#'papersize': 'letterpaper', - -# The font size ('10pt', '11pt' or '12pt'). -#'pointsize': '10pt', - -# Additional stuff for the LaTeX preamble. -#'preamble': '', -} - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, author, documentclass [howto/manual]). -latex_documents = [ - ('index', 'MOOSE.tex', u'MOOSE Documentation', - u'Upinder Bhalla, Aviral Goel and Harsha Rani', 'manual'), -] - -# The name of an image file (relative to this directory) to place at the top of -# the title page. -latex_logo = '../images/moose_logo.png' - -# For "manual" documents, if this is true, then toplevel headings are parts, -# not chapters. -#latex_use_parts = False - -# If true, show page references after internal links. -latex_show_pagerefs = True - -# If true, show URL addresses after external links. -#latex_show_urls = False - -# Documents to append as an appendix to all manuals. -#latex_appendices = [] - -# If false, no module index is generated. -latex_domain_indices = True - - -# -- Options for manual page output -------------------------------------------- - -# One entry per manual page. List of tuples -# (source start file, name, description, authors, manual section). -man_pages = [ - ('index', 'moose', u'MOOSE Documentation', - [u'Upinder Bhalla, Aviral Goel and Harsha Rani'], 1) -] - -# If true, show URL addresses after external links. -#man_show_urls = False - - -# -- Options for Texinfo output ------------------------------------------------ - -# Grouping the document tree into Texinfo files. List of tuples -# (source start file, target name, title, author, -# dir menu entry, description, category) -texinfo_documents = [ - ('index', 'MOOSE', u'MOOSE Documentation', - u'Upinder Bhalla, Aviral Goel and Harsha Rani', 'MOOSE', 'MOOSE is the Multiscale Object-Oriented Simulation Environment.', - 'Science'), -] - -# Documents to append as an appendix to all manuals. -#texinfo_appendices = [] - -# If false, no module index is generated. -texinfo_domain_indices = True - -# How to display URL addresses: 'footnote', 'no', or 'inline'. -#texinfo_show_urls = 'footnote' - -#numpydoc option -numpydoc_show_class_members = True diff --git a/docs/user/snippets_tutorial/index.rst b/docs/user/snippets_tutorial/index.rst deleted file mode 100644 index c10ea58985b2ee8b14af34a847fcca22dbd0af00..0000000000000000000000000000000000000000 --- a/docs/user/snippets_tutorial/index.rst +++ /dev/null @@ -1,16 +0,0 @@ -.. MOOSE documentation master file, created by - sphinx-quickstart on Tue Feb 2 14:05:47 2016. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. - -Snippets and Tutorials for MOOSE -================================== -Snippets and Tutorials for MOOSE - -.. toctree:: - :maxdepth: 2 - :numbered: - - - snippet - tutorial diff --git a/docs/user/snippets_tutorial/snippet.rst b/docs/user/snippets_tutorial/snippet.rst deleted file mode 100644 index fff4d674d06b85384ed81dada2a03a1b7a804fb9..0000000000000000000000000000000000000000 --- a/docs/user/snippets_tutorial/snippet.rst +++ /dev/null @@ -1,66 +0,0 @@ -.. A snippets for MOOSE -.. Lists all the snippets in moose-examples/snippets directory - -MOOSE Snippet -============== - -The MOOSE Snippet contains examples showing you how to do specific -tasks in MOOSE. - -Scripting Parser ----------------- - -Class features --------------- - -Network Models --------------- - -Single Neuron Models ---------------------- -Some salient properties of neuronal building blocks in MOOSE are described below. - -Signaling Pathways ------------------- -This section show some of the chemical signaling pathways related settings - -Define a kinetic model using the scripting in moose -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. automodule:: scriptKineticModel - :members: - -Set up of kinetic solver -^^^^^^^^^^^^^^^^^^^^^^^^ -.. automodule:: scriptKineticSolver - :members: - -Multi scale models -------------------- - -3-D graphics -------------- - -Load-Run-Saving pre-existing model files ----------------------------------------- -This section of the documentation explains how to load-run-save predefined models in MOOSE. - -Load Kinetics Models -^^^^^^^^^^^^^^^^^^^^^ -.. automodule:: loadKineticModel - :members: - -Load SBML Models -^^^^^^^^^^^^^^^^^ -.. automodule:: loadSbmlmodel - :members: - -Load Cspace Models -^^^^^^^^^^^^^^^^^^^ -.. automodule:: loadCspaceModel - :members: - -Save Models to Sbml format -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. automodule:: convert_Genesis2Sbml - :members: - diff --git a/docs/user/snippets_tutorial/tutorial.rst b/docs/user/snippets_tutorial/tutorial.rst deleted file mode 100644 index 27a249832b91b4309a19983a280a3d94048e2c2d..0000000000000000000000000000000000000000 --- a/docs/user/snippets_tutorial/tutorial.rst +++ /dev/null @@ -1,37 +0,0 @@ -.. A tutorials for MOOSE -.. This tutorials walks through some of the simple and practical approch related to MOOSE - -Audience -This reference has been prepared for the beginners to help them understand the basic to advanced concepts related to MOOSE. -This tutorial walks through a range of topics, including integrate-and-fire networks, chemical bistables, and oscillators. -Has stand-alone graphics and the Python scripts are meant to tinker with. - -MOOSE Tutorial -============== - -This reference has prepared for the users to help them understand from the basic to complex modeling building in MOOSE - -Chemical Signalling Models -^^^^^^^^^^^^^^^^^^^^^^^^^^ -`Load Kinetic Model <loadKineticModel.html>`_ ----------------------------------------------- - -`Deterministic Simulation <DeterministicSolver.html>`_ ----------------------------------------------------------------- - -`Stochastic Simulation <StochasticSolver.html>`_ ------------------------------------------------------------ - -`Finding Steady State <SteadyState.html>`_ -------------------------------------------------- - -`Building Simple Reaction Model <Building_Simple_Reaction_Model.html>`_ ------------------------------------------------------------------------------- - - - -Building of Electical Signalling Models -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Building Chemical-Electrical Signalling Models using Rdesigneur -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^