VE Lua Documentation

Press F to search!

init

Definition


-- @/lua/vehicle/protocols.lua:206
local function init()
  destroy()
  M.update = nop
  M.updateGFX = nop
  physicsStepUsed = false

  -- optimization, early return without hitting FS
  local outgaugeEnabled = settings.getValue("protocols_outgauge_enabled")
  local motionSimEnabled = settings.getValue("protocols_motionSim_enabled")
  local othersEnabled = settings.getValue("protocols_others_enabled")
  local anyProtocolEnabled = outgaugeEnabled or motionSimEnabled or othersEnabled
  if not anyProtocolEnabled then return end

  local anyProtocolActive = false
  filesCache = filesCache or FS:findFiles(protocolsDir, "*.lua", 0, false, false) -- optimization, do not hit FS for new files (until you ctrl-R)
  for _,filepath in ipairs(filesCache) do
    local filename = filepath:match("[^/]*.lua$")
    local name = filename:sub(0, #filename - 4)
    local enabled = false
    if name == "outgauge" then
      enabled = settings.getValue("protocols_outgauge_enabled")
    elseif name == "motionSim" then
      enabled = settings.getValue("protocols_motionSim_enabled")
    else
      enabled = settings.getValue("protocols_others_enabled")
    end
    if not enabled then
      --log("D", "", "Protocol disabled in configuration, not initializing: "..dumps(name))
      goto continue
    end
    local protocol = initProtocolFromConfig(name)
    if protocol then
      anyProtocolActive = true
      if protocol.physicsStepUsed then
        M.update = updatePhysics
        physicsStepUsed = true
      else
        M.updateGFX = updateGFX
      end
      table.insert(protocols, protocol)
      log("D", "", string.format("Protocol %q active for vehicle "..objectId.." ("..vehiclePath..") at %s:%d with an update rate of %d Hz (%s)", protocol.name, protocol.ip, protocol.port, protocol.updateRate, tostring(protocol)))
    end
    ::continue::
  end
  if anyProtocolActive then
    smoothersInit()
  end
end

Callers

@/lua/ge/extensions/gameplay/markers/crawlMarker.lua
local screenObjTemp = nil
function C:init()
  self.visible = true
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/vehicle/onVehicleSpawned.lua

function C:init(mgr, ...)
@/lua/ge/extensions/flowgraph/nodes/timetrials/onRaceRestarted.lua

function C:init(mgr, ...)
  self.restart = false
@/lua/ge/extensions/flowgraph/nodes/ui/updatedUI/endScreenBegin.lua

function C:init()
  self.open = false
@/lua/vehicle/energyStorage.lua

local function init()
  M.updateGFX = nop
@/ui/ui-vue/src/main.js
// initialise systemInfo service
SysInfo.init()
@/lua/ge/extensions/flowgraph/nodes/gameplay/race/moveVehicleToStartposition.lua

function C:init(mgr, ...)
  self.path = nil
@/lua/ge/extensions/gameplay/rally/vehicleTracker.lua

function C:init(damageThreshold)
  -- log('D', logTag, 'VehicleTracker init')
  C.__index = C
  o:init(...)
  return o
@/lua/vehicle/controller/pneumatics/lowAirPressureWarning.lua

local function init(jbeamData)
  lowAirWarningElectric = jbeamData.lowAirWarningElectric or "lowAirPressure"
@/lua/ge/extensions/flowgraph/nodes/activity/getProgress.lua
C.allowCustomOutPins = true
function C:init()
  self.savePins = true
@/gameplay/missionTypes/delivery/editor.lua

function C:init()
  self:addString("Intro Message", "introMessage", "", 10000, {isTranslation = true})
@/lua/ge/extensions/flowgraph/nodes/gameplay/traffic/fileVehicleGroup.lua

function C:init()
  self.vehGroup = nil
@/lua/ge/extensions/editor/raceEditor/pathnodes.lua

function C:init(raceEditor)
  self.raceEditor = raceEditor
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/gameplay/race/raceEndScreen.lua

function C:init()
  self.open = false
@/lua/vehicle/controller/hydraulics/hydraulicsCombustionEngineControl.lua

local function init(jbeamData)
  local mode = jbeamData.mode
@/lua/ge/extensions/flowgraph/nodes/ui/buttons/setMultipleButtonsProperty.lua

function C:init()
  self.count = 1
@/lua/ge/extensions/gameplay/drag/display.lua

local function init()
  if dragData then
  end
  init()
  clearAll()
@/lua/vehicle/controller/drivingDynamics/actuators/activeDiffBias.lua

local function init(jbeamData)
  M.isActing = false
@/lua/ge/extensions/editor/rallyEditor/pacenotes/pacenoteForm.lua

function C:init(pacenoteToolsWindow)
  self.pacenoteToolsWindow = pacenoteToolsWindow
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/gameplay/rally/handleLapChange.lua

-- function C:init()
-- end
@/gameplay/missionTypes/dragStripRace/editor.lua

function C:init()
@/lua/vehicle/controller/twoStepLaunch.lua

local function init(jbeamData)
  local engineName = jbeamData.engineName or "mainEngine"
@/lua/ge/extensions/scenario/driftGoal.lua

local function init(scenario)
  M.instances = {}
@/lua/ge/extensions/flowgraph/nodes/ui/contextTranslation.lua

function C:init()
  self.savePins = true
@/lua/ge/extensions/flowgraph/nodes/ui/flashMessage.lua

function C:init()
  self.helper = require('scenario/scenariohelper')
@/lua/ge/extensions/flowgraph/nodes/util/closestRoad.lua

function C:init(mgr)
end
@/lua/ge/extensions/gameplay/markers/zoneMarker.lua

function C:init() end
  C.__index = C
  o:init(...)
  return o
@/lua/common/luaProfiler.lua
-- constructor; title is only displayed in logs, can be used to differentiate between different profilers running at the same time
function C:init(title)
  self.title = title
  setmetatable(o, C)
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/vehicle/vehicleData.lua

function C:init(mgr, ...)
@/lua/ge/extensions/flowgraph/nodes/gameplay/traffic/pursuitParams.lua

function C:init()
  self.vars = {}
@/lua/vehicle/powertrain/combustionEngineThermals.lua

local function init(engine, engineJbeamData)
  parentEngine = engine
@/lua/ge/extensions/flowgraph/nodes/gameplay/traffic/setVehicleFlowgraph.lua

function C:init()
  self.savePins = true
@/lua/ge/extensions/flowgraph/nodes/gameplay/crawl/getCrawlData.lua

function C:init(mgr)
  self.bridge = require('ge/extensions/gameplay/crawl/flowgraphBridge')
@/lua/ge/extensions/editor/util/transformUtil.lua
-- initializes stuff for the helper.
function C:init(editName, objectName)
  self.id = getNextUniqueIdentifier()
  C.__index = C
  o:init(...)
  return o
@/ui/lib/ext/angular-material-paging.js
    $scope.$watch('wmpTotal', function() {
      vm_paging.init();
    });
@/lua/ge/extensions/editor/rallyEditor/testTab.lua

function C:init(rallyEditor)
  self.path = nil
  C.__index = C
  o:init(...)
  return o
@/gameplay/missionTypes/rallyRoadSection/constructor.lua

function C:init()
  self.latestVersion = version
@/lua/ge/extensions/flowgraph/nodes/gameplay/race/raceMarkers.lua

function C:init()
  self.markers = nil
        self.markers = require('scenario/race_marker')
        self.markers.init()
        local wps = {}
@/lua/ge/extensions/editor/sitesEditor/locations.lua

function C:init(sitesEditor, key)
  self.sitesEditor = sitesEditor
  C.__index = C
  o:init(...)
  return o
@/gameplay/missionTypes/hypermiling/constructor.lua

function C:init()
  self.latestVersion = version
@/lua/ge/extensions/flowgraph/nodes/vehicle/setLicensePlate.lua

function C:init(mgr, ...)
  self.ready = true
@/lua/ge/extensions/editor/missionEditor/prefabs.lua

function C:init(missionEditor)
  self.missionEditor = missionEditor
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/gameplay/traffic/pursuitInformation.lua

function C:init()
  self:reset()
@/lua/vehicle/thrusters.lua

local function init()
  -- update public interface
@/lua/ge/extensions/flowgraph/nodes/career/onMissionRunstateChanged.lua

function C:init()
  self.flags = {}
@/lua/ge/extensions/editor/raceEditor/startPositions.lua

function C:init(raceEditor)
  self.raceEditor = raceEditor
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/mission/ARunForLife.lua

function C:init(mgr, ...)
end
@/lua/ge/extensions/flowgraph/nodes/gameplay/dragRace/generateDragOpponents.lua

function C:init()
  self.selectedOpponents = {}
@/lua/ge/extensions/flowgraph/nodes/debug/flowButton.lua

function C:init(mgr, ...)
  self.data.btnName = "Push"
@/lua/vehicle/controller/drivingDynamics/CMU.lua

local function init(jbeamData)
  isUDPConnected = false
@/lua/ge/extensions/flowgraph/nodes/vehicle/trackVehicle.lua

function C:init()
end
@/lua/ge/extensions/gameplay/traffic/roles/empty.lua

function C:init()
  self.actions = {}
@/lua/ge/extensions/flowgraph/nodes/ui/endScreen.lua

function C:init()
  self.open = false
@/lua/ge/extensions/editor/raceEditor/pacenotes.lua

function C:init(raceEditor)
  self.raceEditor = raceEditor
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/gameplay/markers/missionMarker.lua
-- called when this object is created. initialize variables here (but dont spawn objects)
function C:init()
  self.id = idCounter
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/gameplay/rally/tools/loopToolbox.lua

function C:init()
  self.missionDropdownItems = {""}
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/scenario/race_marker.lua

local function init()
  -- clear previous markers.
@/lua/ge/extensions/core/cameraModes/path.lua

function C:init()
  self.isGlobal = true
  setmetatable(o, C)
  o:init()
  return o
@/lua/vehicle/controller/etkGauges.lua

local function init(jbeamData)
  log("E", "etkGauges", "This controller is deprecated and shall not be used. It might be removed without further notice in the future! Please switch to the 'genericGauges' controller instead.")
@/lua/vehicle/controller/tech/cosimulationCoupling.lua
-- Initialisation callback.
local function init(dataEncoded)
@/lua/ge/extensions/flowgraph/nodes/math/quaternion/lookAt.lua

function C:init()
end
@/lua/ge/extensions/flowgraph/nodes/gameplay/crash/onCrashDetected.lua

function C:init()
  self:reset()
@/lua/ge/extensions/editor/rallyEditor/measurementsTab.lua

function C:init(rallyEditor)
  self.rallyEditor = rallyEditor
  C.__index = C
  o:init(...)
  return o
@/lua/vehicle/controller/propAnimation/hPattern.lua

local function init(jbeamData)
  local gearCoordinateTable = tableFromHeaderTable(jbeamData.gearCoordinates or {})
@/lua/ge/extensions/flowgraph/nodes/gameplay/race/raceDisqualify.lua

function C:init()
@/lua/ge/extensions/flowgraph/nodes/debug/drawGraph.lua

function C:init()
  self.inputLabels = {}
@/lua/vehicle/controller/wendoverGauges.lua

local function init(jbeamData)
  log("E", "wendoverGauges", "This controller is deprecated and shall not be used. It might be removed without further notice in the future! Please switch to the 'genericGauges' controller instead.")
@/lua/ge/extensions/flowgraph/nodes/vehicle/alignForCoupling.lua

function C:init()
@/lua/ge/extensions/flowgraph/nodes/ui/customUiLayout.lua

function C:init()
@/gameplay/missionTypes/aiRace/customNodes/multiVehicleLuaNode.lua

function C:init()
  self.data.ignoreUndrivableVehicles = true
@/gameplay/missionTypes/cannon/customNodes/cannonBallInfoNode.lua

function C:init()
@/lua/ge/extensions/flowgraph/nodes/vehicle/teleportToLastRoad.lua

function C:init()
  --self.data.useWheelCenter = false
@/lua/ge/extensions/flowgraph/nodes/events/onUpdate.lua

function C:init(mgr, ...)
end
@/lua/ge/extensions/flowgraph/nodes/macro/getForeach.lua

function C:init(mgr, ...)
@/lua/ge/extensions/flowgraph/nodes/gameplay/traffic/setupParkedCars.lua

function C:init()
  self:onNodeReset()
@/lua/ge/extensions/flowgraph/nodes/vehicle/special/customVlua_string.lua

function C:init()
  self.data.func = self.pinIn.customLUAString.value
@/lua/ge/extensions/editor/flowgraph/garbageDebug.lua

function C:init()
  editor.registerWindow(self.windowName, im.ImVec2(150,300), nil, false)
@/lua/ge/extensions/flowgraph/nodes/vehicle/freeze.lua

function C:init()
@/lua/ge/extensions/gameplay/rally/transcripts/entry.lua

function C:init(path, name, forceId)
  self.path = path
  C.__index = C
  o:init(...)
  return o
@/lua/vehicle/protocols/outgauge.lua
local hasShiftLights = false
local function init()
  local shiftLightControllers = controller.getControllersByType("shiftLights")
@/lua/ge/extensions/core/cameraModes/chase.lua

function C:init()
  self.disabledByDefault = true
  self.collision = collision()
  self.collision:init()
  setmetatable(o, C)
  o:init()
  return o
@/lua/ge/extensions/gameplay/drift/stuntZones/hitPole.lua

function C:init(data)
  self.data = data
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/modules/uiModule.lua

function C:init()
  self:clear()
@/lua/ge/extensions/editor/crawlEditor/paths.lua

function C:init(crawlEditorParam)
  self.crawlEditor = crawlEditorParam
  C.__index = C
  o:init(...)
  return o
@/lua/vehicle/controller/drivingDynamics/supervisors/components/aeroControl.lua

local function init(jbeamData)
  M.isActingAsTC = false
@/gameplay/missionTypes/drift/customNodes/waitTriggerNode.lua

function C:init(mgr, ...)
  --self.data.duration = 3
@/lua/vehicle/controller/sound/airbrakes.lua

local function init(jbeamData)
  lastBrake = 0
@/lua/ge/extensions/gameplay/rally/notebook/path.lua

function C:init(name)
  self._uid = 0
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/modules/levelModule.lua

function C:init()
  self.funs = {}
@/lua/ge/extensions/core/cameraModes/transition.lua

function C:init()
  self.isGlobal = true
  setmetatable(o, C)
  o:init()
  return o
@/lua/ge/extensions/flowgraph/nodes/logic/timedTrigger.lua

function C:init(mgr, ...)
  self.data.resetTimer = 1
@/lua/ge/extensions/flowgraph/nodes/ui/getGamestate.lua

function C:init()
end
@/lua/ge/extensions/flowgraph/nodes/vehicle/beamstate/beamstate.lua

function C:init()
  self.functions = {
@/ui/modules/scenariocontrol/scenariocontrol.js
      // returned funciton will start the loaded comic
      function init (assets, path, sounds) {
        var assetManager = new spine.canvas.AssetManager()
          var soundFiles = data.filter((elem) => ['.ogg'].filter((e) => elem.endsWith(e)).length > 0)
          init(animationFiles, animationPath, soundFiles).then((renderFunc) => {
            deferred.resolve(renderFunc)
@/lua/ge/extensions/flowgraph/nodes/gameplay/race/raceSuspend.lua

function C:init()
@/lua/ge/extensions/flowgraph/nodes/environment/setCloud.lua

function C:init(mgr)
  self.data.restoreCloud = true
@/lua/ge/extensions/gameplay/markers/parkingMarker.lua
local idCounter = 0
function C:init()
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/scene/camera/cameraAngle.lua

function C:init()
@/lua/ge/extensions/flowgraph/nodes/gameplay/traffic/trafficSpawnGroup.lua

function C:init()
  self:resetState()
@/lua/vehicle/controller/drivingDynamics/actuators/electronicSplitShaftLock.lua

local function init(jbeamData)
  M.isActing = false
@/lua/ge/extensions/flowgraph/nodes/types/bool.lua

function C:init()
  self.data.value = true
@/lua/ge/extensions/flowgraph/nodes/gameplay/rally/countdownSynced.lua

function C:init(mgr, ...)
  self.data.useImgui = false
@/lua/ge/extensions/flowgraph/nodes/gameplay/race/raceNodeReached.lua
}
function C:init(mgr, ...)
  self.data.detailed = false
@/lua/ge/extensions/editor/flowgraph/legend.lua

function C:init()
  editor.registerWindow(self.windowName, im.ImVec2(150,300), nil, false)
@/lua/ge/extensions/flowgraph/nodes/util/time.lua

function C:init(mgr, ...)
end
@/lua/ge/extensions/flowgraph/nodes/gameplay/traffic/signals/controller.lua

function C:init()
  self.count = 1
@/lua/ge/extensions/flowgraph/nodes/vehicle/spawnVehicle.lua

function C:init()
  self.state = 1
@/lua/ge/extensions/flowgraph/nodes/states/stateNode.lua
-- This gets called when the node has been created for the first time. Init field here
function C:init(mgr)
@/lua/ge/extensions/flowgraph/nodes/activity/aggregateAttempt.lua

function C:init()
@/gameplay/missionTypes/knockAway/constructor.lua

function C:init()
  self.latestVersion = version
@/lua/ge/extensions/flowgraph/nodes/gameplay/traffic/trafficActivate.lua

function C:init()
  self:onNodeReset()
@/lua/ge/extensions/flowgraph/nodes/career/menuClosed.lua

function C:init()
  self.flags = {}
@/gameplay/missions/gridmap_v2/aiRace/001-grindergrandprix/script.lua
  if o.init then
    o:init(...)
  end
@/lua/ge/extensions/flowgraph/nodes/gameplay/traffic/parkingTrackVehicle.lua

function C:init()
  self:reset()
@/gameplay/missionTypes/cannon/customNodes/MarkersNode.lua
  self.markers = require('scenario/race_marker')
  self.markers.init()
  table.clear(wps)
@/lua/ge/extensions/flowgraph/nodes/activity/missionAttemptStars.lua

function C:init()
  self.savePins = true
@/lua/vehicle/controller/vehicleController/shiftLogic/electricMotor.lua

local function init(jbeamData, sharedFunctionTable)
  sharedFunctions = sharedFunctionTable
@/lua/ge/extensions/scenario/positionGoal.lua

local function init(scenario)
  M.instances = {}
@/lua/vehicle/controller/tech/screens.lua
local function reset(jbeamData)
  M.init(jbeamData)
end

local function init(jbeamData)
  if not jbeamData.screenDefinitions or type(jbeamData.screenDefinitions) ~= "table" or #jbeamData.screenDefinitions <= 0 then
@/lua/ge/extensions/flowgraph/nodes/activity/starsActive.lua

function C:init()
  self.savePins = true
@/lua/ge/extensions/flowgraph/nodes/vehicle/toggleVehicleControls.lua

function C:init()
@/lua/vehicle/material.lua

local function init()
  if not v.data._materials then
@/lua/objectpool/main.lua
-- called in object Lua VM
function init(path, initData)
  local object
@/lua/ge/extensions/flowgraph/nodes/math/smoothers/spring.lua

function C:init()
  C.oldSet = 0
@/lua/ge/extensions/flowgraph/nodes/math/vector/split.lua

function C:init()
end
@/lua/ge/extensions/flowgraph/nodes/vehicle/ai/scriptAI/pathStored.lua

function C:init()
  self.aiPath = {}
@/lua/vehicle/controller/vehicleController/shiftLogic/dummy.lua

local function init(jbeamData, sharedFunctionTable)
  sharedFunctions = sharedFunctionTable
@/lua/ge/extensions/scenario/raceMarkers/noneMarker.lua
-- called when this object is created. initialize variables here (but dont spawn objects)
function C:init(id)
end
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/core/cameraModes/manualzoom.lua

function C:init(fovDefault, fovMin, fovMax, uiTxt)
  self.isFilter = true
  setmetatable(o, C)
  o:init()
  return o
@/lua/ge/extensions/flowgraph/nodes/thread/receiveMessage.lua

function C:init()
  self.savePins = true
@/lua/vehicle/controller/vivaceGauges.lua

local function init(jbeamData)
  log("E", "vivaceGauges", "This controller is deprecated and shall not be used. It might be removed without further notice in the future! Please switch to the 'genericGauges' controller instead.")
@/lua/ge/extensions/flowgraph/nodes/vehicle/touchingStatic.lua

function C:init()
  self:reset()
@/lua/ge/extensions/flowgraph/nodes/thread/loadProject.lua

function C:init(mgr, ...)
  self.targetId = nil
@/lua/ge/extensions/flowgraph/nodes/gameplay/rally/trackStageTime.lua

function C:init(mgr, ...)
end
@/lua/ge/extensions/editor/roadArchitect.lua
                local bmp = GBitmap()
                bmp:init(width, height)
                bmp:allocateBitmap(width, height, false, "GFXFormatR16")
@/lua/ge/extensions/editor/util/editorElementHelper.lua
  if o.init then
    o:init()
  end
@/lua/ge/extensions/flowgraph/nodes/mission/selectGarage2GarageZones.lua

function C:init()
  self.startSpot = nil
@/lua/ge/extensions/gameplay/race/pacenote.lua

function C:init(path, name, forceId)
  self.path = path
  C.__index = C
  o:init(...)
  return o
@/gameplay/missionTypes/knockAway/editor.lua

function C:init()
@/lua/ge/extensions/flowgraph/nodes/ui/onBigmapPoiSelected.lua

function C:init()
  self.flags = {}
@/lua/vehicle/backwardsCompatibility.lua

local function init()
  checkOldESC() --convert hardcoded ESC to controller
@/lua/ge/extensions/flowgraph/nodes/activity/requestAbandon.lua

function C:init(mgr, ...)
  self.reset = false
@/lua/vehicle/main.lua
  profilerPushEvent("3.1 init - compat")
  backwardsCompatibility.init()
  profilerPopEvent("3.1 init - compat")
  profilerPushEvent("3.2.X init - materials (sum)")
  material.init()
  profilerPopEvent("3.2.X init - materials (sum)")
  profilerPushEvent("3.2 init - first stage")
  bdebug.init()
  electrics.init()
  bdebug.init()
  electrics.init()
  damageTracker.init()
  electrics.init()
  damageTracker.init()
  beamstate.init() -- needs to go before powertrain and first controller init, needs to go after damageTracker
  damageTracker.init()
  beamstate.init() -- needs to go before powertrain and first controller init, needs to go after damageTracker
  protocols.init()
  beamstate.init() -- needs to go before powertrain and first controller init, needs to go after damageTracker
  protocols.init()
  wheels.init()
  protocols.init()
  wheels.init()
  powertrain.init()
  wheels.init()
  powertrain.init()
  energyStorage.init()
  powertrain.init()
  energyStorage.init()
  input.init()
  energyStorage.init()
  input.init()
  controller.init() -- needs to go after input first stage
  input.init()
  controller.init() -- needs to go after input first stage
  profilerPopEvent("3.2 init - first stage")
  controller.initSecondStage()
  drivetrain.init()
  profilerPopEvent("3.3 init - second stage")
  sensors.reset()
  thrusters.init()
  hydros.init()
  thrusters.init()
  hydros.init()
  profilerPopEvent("3.4 init - groupA")
  profilerPushEvent("3.5 init - audio")
  sounds.init()
  profilerPopEvent("3.5 init - audio")
  profilerPushEvent("3.6 init - groupB")
  props.init()
  input.initSecondStage() -- needs to go after sounds & electrics
  input.initSecondStage() -- needs to go after sounds & electrics
  recovery.init()
  sensors.init()
  recovery.init()
  sensors.init()
  fire.init()
  sensors.init()
  fire.init()
  wheels.initSounds()
  profilerPushEvent("3.8 init - last stage")
  mapmgr.init()

function init(path, initData)
  profilerPushEvent("4.X.X.X total (sum)")
@/lua/ge/extensions/flowgraph/nodes/util/ghost.lua

function C:init()
  self.formerNodeType = "NOT GHOST"
@/gameplay/missionTypes/aiRace/customNodes/collisionTrackingNode.lua

function C:init()
  self:onNodeReset()
@/lua/ge/extensions/scenario/finishRaceGoal.lua

local function init(scenario)
  M.instances = {}
@/lua/ge/extensions/flowgraph/nodes/gameplay/dragRace/setDragVehicle.lua

function C:init()
  self.count = 1
@/lua/ge/extensions/flowgraph/modules/driftModule.lua

function C:init()
  self:resetModule()
@/lua/ge/extensions/flowgraph/nodes/vehicle/getGearboxMode.lua

function C:init()
  self:onNodeReset()
@/lua/ge/extensions/flowgraph/nodes/career/onTestDriveChanged.lua

function C:init()
  self.flags = {}
@/lua/ge/extensions/flowgraph/builder.lua

function C:init()
  self.CurrentNodeId = 0 -- NodeId
  setmetatable(o, C)
  o:init()
  return o
@/gameplay/missionTypes/chase/customNodes/suspectDistanceNode.lua

function C:init()
  self:reset()
@/lua/ge/extensions/gameplay/race/path.lua
local prefabFields = {"prefabs","forwardPrefabs","reversePrefabs"}
function C:init(name)
  self._uid = 0
  local path = self
  path:init("New Race")
  local nodeToId = {}
  local path = self
  path:init("New Race")
  local nodeToId = {}
  local path = self
  path:init("New Race")
  path.hideMission = trackInfo.hideMission or false
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/core/cameraModes/free.lua
  self.manualzoom = manualzoom()
  self.manualzoom:init(65)
  self.rot.z = 0 -- reset roll

function C:init()
  self.isGlobal = true
function C:setFOV(fovDeg)
  self.manualzoom:init(fovDeg)
end
  setmetatable(o, C)
  o:init()
  return o
@/lua/ge/extensions/flowgraph/nodes/scene/rectMarker.lua

function C:init(mgr, ...)
  self.triggerName = nil
@/lua/ge/extensions/editor/assetBrowser.lua
    local bitmap = GBitmap()
    bitmap:init(var.meshPreviewCacheThumbnailSize,var.meshPreviewCacheThumbnailSize)
    shapePrev:copyToBmp(bitmap:getPtr())
    local bitmap = GBitmap()
    bitmap:init(var.meshPreviewCacheThumbnailSize,var.meshPreviewCacheThumbnailSize)
    shapePrev:copyToBmp(bitmap:getPtr())
@/lua/ge/extensions/flowgraph/nodes/util/file/loadData.lua

function C:init(mgr)
  self.savePins = true
@/lua/ge/extensions/flowgraph/nodes/math/smoothers/nonLinear.lua

function C:init()
  C.oldSet = 0
@/lua/vehicle/drivetrain.lua

local function init()
  M.wheels = wheels.wheels
@/lua/ge/extensions/flowgraph/nodes/vehicle/ai/followWaypoints.lua

function C:init()
  self:onNodeReset()
@/lua/ge/extensions/gameplay/rally/driveline/pointList.lua
-- Each point has: pos, quat, ts, normal, prev, next, id, pacenoteDistances, cachedPacenotes
function C:init(points)
  self.points = points or {}
  C.__index = C
  o:init(...)
  return o
@/ui/ui-vue/src/modules/vehicleConfig/stores/tuningStore.js

  async function init() {
    editedTuningVars = {}
@/lua/vehicle/controller/controlModes.lua

local function init(jbeamData)
  controlModes = tableFromHeaderTable(jbeamData.modes)
@/gameplay/missionTypes/drift/editor.lua

function C:init()
  driftType = self:addDropdown("Drift mission type", "driftType", {"Gymkhana", "A to B", "A to B with stunt zones"}, "Gymkhana")
@/lua/ge/extensions/flowgraph/nodes/vehicle/beamstate/couple.lua

function C:init(mgr, ...)
  self.data.mode = "activate"
@/lua/ge/extensions/flowgraph/nodes/activity/activityAttempt.lua

function C:init()
  self.savePins = true
@/lua/ge/extensions/flowgraph/nodes/tech/setupUltrasonicSensor.lua

function C:init()
@/lua/ge/extensions/editor/missionEditor/general.lua
local noTranslation = "No Translation found!"
function C:init(missionEditor)
  self.missionEditor = missionEditor
  C.__index = C
  o:init(...)
  return o
@/lua/vehicle/controller/braking/transbrake.lua

local function init(jbeamData)
  local gearboxName = jbeamData.gearboxName or "gearbox"
@/ui/ui-vue/src/modules/liveryEditor/stores/layerSettingsStore.js

  function init() {
    if (!active.value) rootStore.toggleShowDecalSelector()
@/ui/lib/int/utilities.js
          // otherwise we would never be able to apply new data that was available only after compilation
          function init () {
            if (scope.visibleItems.length === 0) {
            scope.allData = val || []
            init()
          })
          window.onresize = function () {
            init()
          }
@/lua/ge/extensions/editor/dynamicDecals/textures.lua

-- reference to the editor tool, set in init()
local tool = nil
@/lua/ge/extensions/gameplay/missions/missionTypes/flowMission.lua
-- This is called when a mission of this type is being created. Load files, initialize variables etc
function C:init()
  self.missionTypeLabel = "bigMap.missionLabels."..self.missionType
  C.__index = C
  o:init()
  for k, v in pairs(derivedClass) do
  end
  local init = o:init()
  return o, init
@/lua/ge/extensions/flowgraph/nodes/mission/UpdateDisplayDragRace.lua

function C:init()
  self.pinOut.flow.value = false
@/lua/ge/extensions/editor/sitesEditor/sortedListDisplay.lua

function C:init(sitesEditor, key, elementEditor)
  self.key = key
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/editor/missionEditor/playbookUtils.lua

function C:init(missionEditor)
  self.missionEditor = missionEditor
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/baseStateNode.lua

function C:init(mgr)
  -- make our own custom pins for the borders
  C.__index = C
  o:init(...)
  return o
  if o.init ~= baseInit then
    o:init()
  end
@/lua/ge/extensions/editor/flowgraph/events.lua

function C:init()
    editor.registerWindow(self.windowName, im.ImVec2(150,300), nil, false)
@/lua/ge/extensions/flowgraph/nodes/gameplay/sites/locationByName.lua

function C:init(mgr, ...)
@/gameplay/missions/automation_test_track/flowgraph/001-Dam/customNodes/hitTargetNode.lua

function C:init()
  self:onNodeReset()
@/lua/ge/extensions/core/settings/graphic.lua
    if graphicsOptions[k] and type(graphicsOptions[k].init) == 'function' then
      graphicsOptions[k].init(v)
    end
@/gameplay/missions/east_coast_usa/flowgraph/001-Gavril/constructor.lua

function C:init()
  self.defaultAggregateValues = {
return function()
  C:init()
  return C
@/lua/ge/extensions/flowgraph/nodes/career/setFuelLevel.lua

function C:init()
  self:onNodeReset()
@/lua/ge/extensions/flowgraph/nodes/vehicle/ai/goToEndLine.lua

function C:init()
  self.data.autoDisableOnArrive = true
@/lua/ge/extensions/core/settings/settings.lua
local function finalizeInit()
  -- force application of all settings the first time, since init() has not correctly applied all of them
  -- we could make init() call load(), but that would fail because it's still too early, and some stuff is not initialized yet
  -- force application of all settings the first time, since init() has not correctly applied all of them
  -- we could make init() call load(), but that would fail because it's still too early, and some stuff is not initialized yet
  load(true)
@/lua/vehicle/controller/tech/GPS.lua
-- Initialises this GPS sensor instance.
local function init(data)
    sensorId = data.sensorId
@/lua/ge/extensions/flowgraph/nodes/career/onMissionPromptShown.lua

function C:init()
  self.flags = {}
@/gameplay/missionTypes/rallyStage/editor.lua

function C:init()
  self:addDecoHeader("Mission Screen Text",'orange')
@/lua/vehicle/fire.lua

local function init()
  if fireBurnSoundObj then
@/lua/ge/extensions/core/hotlapping.lua
    markers = require('scenario/race_marker')
    markers.init()
    local wps = {}
@/lua/ge/extensions/flowgraph/nodes/activity/attemptVehicle.lua

function C:init()
@/lua/ge/extensions/flowgraph/nodes/scene/spawnPrefab.lua

function C:init(mgr, ...)
  self.objects = {}
@/lua/ge/extensions/gameplay/crawl/utils.lua
    markers = require('scenario/race_marker')
    markers.init()
  end
@/lua/ge/extensions/flowgraph/link.lua

function C:init(graph, sourcePin, targetPin)
  self.graph = graph
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/scenario/raceMarkers/attention.lua
-- called when this object is created. initialize variables here (but dont spawn objects)
function C:init(id)
  self.id = id
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/ui/fadeSequence.lua

function C:init()
  self:setDurationState('inactive')
@/lua/vehicle/input.lua

local function init()
  --inRate (towards the center), outRate (away from the center), autoCenterRate, startingValue
@/gameplay/missionTypes/scatterPickup/constructor.lua

function C:init()
  self.latestVersion = version
@/lua/ge/extensions/editor/util/zoneSelectorUtil.lua

function C:init(element)
  self.element = element
  C.__index = C
  o:init(element)
  return o
@/lua/ge/extensions/flowgraph/nodes/gameplay/rally/setNoteSearch.lua

-- function C:init()
-- end
@/lua/vehicle/powertrain/nitrousOxideInjection.lua

local function init(device, data)
  M.isArmed = false
@/lua/ge/extensions/gameplay/util/sortedList.lua
-- This creates objects.
function C:init(name, parent, objectConstructor)
  self.objectConstructor = objectConstructor
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/tech/terrainImporter.lua
  local bmp = GBitmap()
  bmp:init(bmpSize, bmpSize)
  bmp:allocateBitmap(bmpSize, bmpSize, false, "GFXFormatR16")
@/gameplay/missionTypes/evade/editor.lua

function C:init()
  ---- main settings ----
@/gameplay/missionTypes/garageToGarage/editor.lua

function C:init()
@/lua/ge/extensions/flowgraph/nodes/ui/missionEndScreen.lua

function C:init()
  self.open = false
@/lua/ge/extensions/flowgraph/nodes/logic/switchcase.lua

function C:init()
  self.count = 1
@/lua/ge/extensions/flowgraph/nodes/vehicle/special/customVehicleGetter.lua

function C:init()
  self.data.fun = functions[1].fun
@/lua/ge/extensions/flowgraph/nodes/mission/selectGarage2GarageVehicle.lua

function C:init()
  self.selectedModel = nil
@/gameplay/missionTypes/collection/customNodes/collectionMarkersNode.lua

function C:init(mgr)
  self.mgr.markerData = nil
@/lua/ge/extensions/editor/missionEditor/additionalAttributes.lua

function C:init(missionEditor)
  self.missionEditor = missionEditor
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/scene/raycast.lua

function C:init()
  self.data.debug = false
@/lua/ge/extensions/flowgraph/nodes/macro/io.lua

function C:init()
  self.savePins = true
@/lua/ge/extensions/core/cameraModes/smooth.lua

function C:init(spring, damp, pos)
  self.isFilter = true
  setmetatable(o, C)
  o:init()
  return o
@/lua/ge/extensions/flowgraph/nodes/career/customTowAction.lua

function C:init()
  self.flags = {}
@/lua/vehicle/sounds.lua

local function init()
  if not v.data.nodes then
@/lua/ge/extensions/gameplay/markers/gasStationMarker.lua
local tmpVec = vec3()
function C:init()
  self.visible = true
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/gameplay/rally/notebook/pacenote.lua

function C:init(notebook, name, forceId)
  self.notebook = notebook
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/gameplay/traffic/baseRole.lua

function C:init(veh, name, data)
  data = data or {}
  C.__index = C
  o:init(o.veh, o.name)

  o:init()
  o:postInit()
@/lua/ge/extensions/flowgraph/nodes/career/setTutorialFlag.lua

function C:init()
@/lua/ge/extensions/editor/missionEditor/startTrigger.lua

function C:init(missionEditor)
  self.missionEditor = missionEditor
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/ui/fadeFromBlack.lua

function C:init()
  self:setDurationState('inactive')
@/lua/ge/extensions/flowgraph/nodes/gameplay/traffic/signals/instanceByName.lua

function C:init()
  self:onNodeReset()
@/lua/ge/extensions/flowgraph/nodes/gameplay/crawl/getDynamicObjects.lua

function C:init(mgr)
  self.bridge = require('ge/extensions/gameplay/crawl/flowgraphBridge')
@/lua/vehicle/controller/pneumatics/actuators.lua

local function init(jbeamData)
  local airTankName = jbeamData.airTankName or "mainAirTank"
@/lua/ge/extensions/flowgraph/nodes/activity/activityHook.lua

function C:init()
  self.data.eventName = "start"
@/lua/ge/extensions/flowgraph/nodes/ui/buttons/getMultipleButtons.lua

function C:init()
  self.count = 1
@/lua/ge/extensions/flowgraph/nodes/gameplay/traffic/signals/controllerByName.lua

function C:init()
  self:onNodeReset()
@/lua/ge/extensions/editor/rallyEditor/notebookInfo.lua

function C:init(rallyEditor)
  self.rallyEditor = rallyEditor
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/debug/comment.lua

function C:init()
  self.commentSize = im.ImVec2(200, 200)
@/lua/ge/extensions/gameplay/garageMode.lua
    camData.orbit:setSkipFovModifier(false)
    camData.orbit:init()
  end
@/lua/ge/extensions/scenario/raceMarkers/singleHologramMarker.lua

function C:init(id)
  self.id = id
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/vehicle/setGearbox.lua

function C:init()
@/lua/ge/extensions/flowgraph/nodes/macro/foreach.lua

function C:init(mgr, ...)
  self.data.destroyTargetOnStop = true
@/lua/ge/extensions/flowgraph/nodes/logic/and.lua

function C:init()
  self.count = 2
@/lua/ge/extensions/flowgraph/nodes/career/onVehicleShoppingEvent.lua

function C:init()
  self.flags = {}
@/lua/vehicle/controller/bypassDampers.lua

local function init(jbeamData)
  dampers = {}
@/lua/ge/extensions/flowgraph/modules/prefabModule.lua

function C:init()
  self.prefabs = {}
@/lua/ge/extensions/flowgraph/nodes/ui/imgui/imVehicleSelect.lua

function C:init()
  self.data.enableConfigs = true
@/lua/vehicle/controller/gauges/customModules/tireData.lua

local function init(jbeamData)
end
@/lua/ge/extensions/flowgraph/nodes/gameplay/rally/trackVehicleDistanceToPos.lua

function C:init(mgr, ...)
  self.targetPos = nil
@/lua/ge/extensions/flowgraph/nodes/audio/fadeIn.lua

function C:init()
  self.timer = 0
@/lua/ge/extensions/gameplay/rally/vehicleCapture.lua

function C:init(vehicle, missionDir) --, cornerAngles, selectedCornerAnglesName)
  log('I', logTag, 'initializing vehicleCapture for vehicle='..vehicle:getId())
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/career/garageTutorialUtil.lua

function C:init()
  self.timer = 0
@/lua/ge/extensions/editor/flowgraph/main.lua

function C:init()
@/lua/ge/extensions/flowgraph/nodes/vehicle/gForce.lua

function C:init()
  self:onNodeReset()
@/lua/ge/extensions/editor/flowgraph/properties.lua

function C:init()
  editor.registerWindow(self.windowName, im.ImVec2(150,300), nil, true)
@/lua/ge/extensions/flowgraph/modules/foreachModule.lua

function C:init()
  self:clear()
@/ui/ui-vue/src/modules/liveryEditor/stores/decalSelectorStore.js

  async function init() {
    categories.value = await EDITOR_RESOURCES_LUA.getTextureCategories()
@/lua/ge/extensions/flowgraph/modules/fileModule.lua

function C:init()
  self:clear()
@/lua/ge/extensions/gameplay/rally/notebook/pacenoteWaypoint.lua

function C:init(pacenote, name, pos, forceId)
  self.pacenote = pacenote
  C.__index = C
  o:init(...)
  return o
@/gameplay/missionTypes/chase/constructor.lua

function C:init()
  self.supportsReplay = true
@/lua/ge/extensions/flowgraph/nodes/events/onMissionEnded.lua

function C:init(mgr, ...)
end
@/inspector/External/CodeMirror/codemirror.js

  input.init(d)
}
@/lua/vehicle/controller/drivingDynamics/sensors/virtualSensors.lua

local function init(jbeamData)
  M.reference.bodySlipAngle = 0
@/lua/ge/extensions/core/cameraModes/trackir.lua

function C:init()
  self.isGlobal = true
  end
  if not TrackIR or not TrackIR.init() then
    --log('D', 'core_camera.trackir', 'TrackIR could not init')
  setmetatable(o, C)
  o:init()
  return o
@/gameplay/missionTypes/rallyLoop/constructor.lua

function C:init()
  self.latestVersion = version
@/lua/ge/extensions/flowgraph/nodes/gameplay/race/raceHighscoresComplete.lua

function C:init()
  self.markers = nil
@/lua/ge/extensions/flowgraph/nodes/util/customLua.lua

function C:init()
  self.clearOutPinsOnStart = false
@/lua/vehicle/controller/pneumatics/autoLevelSuspension.lua

local function init(jbeamData)
  local actuatorGroupsData = v.data[jbeamData.actuatorGroups] or {}
@/gameplay/missionTypes/evade/customNodes/getClosestTrafficNode.lua

function C:init()
  self.pos = vec3()
@/lua/ge/extensions/editor/crawlEditor/startingPositions.lua

function C:init()
  self.startingPosition = nil
  C.__index = C
  o:init(...)
  return o
@/lua/vehicle/controller/sbrGauges.lua

local function init(jbeamData)
  log("E", "sbrGauges", "This controller is deprecated and shall not be used. It might be removed without further notice in the future! Please switch to the 'genericGauges' controller instead.")
@/gameplay/missionTypes/scatterPickup/editor.lua

function C:init()
@/lua/ge/extensions/flowgraph/nodes/gameplay/rally/loop/rallyClock.lua

function C:init(mgr, ...)
  -- Cache for scheduled event time lookup
@/lua/ge/extensions/core/cameraModes/bigMap.lua

function C:init()
  self.fovMin = 25 -- This will be overwritten in bigMapMode.lua based on map size
  self.manualzoom = manualzoom()
  self.manualzoom:init(self.fovMax, self.fovMin, self.fovMax)
  self:reset()
function C:setLevelProperties()
  self:init()
end
  self.firstUpdate = true
  self.manualzoom:init(self.fovMax, self.fovMin, self.fovMax)
end
function C:onDeserialized()
  self:init()
  if self.mapBoundaries then
  setmetatable(o, C)
  o:init()
  return o
@/lua/ge/extensions/editor/crawlEditor/boundaries.lua

function C:init(crawlEditorParam)
  self.crawlEditor = crawlEditorParam
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/editor/crawlEditor/trails.lua

function C:init()
  self.currentTab = "paths"
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/scenario/raceMarkers/sideColumnMarker.lua
-- called when this object is created. initialize variables here (but dont spawn objects)
function C:init(id)
  self.id = id
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/vehicle/toShowroom.lua

function C:init() end
@/lua/ge/extensions/flowgraph/nodes/gameplay/sites/locationsByTag.lua

function C:init(mgr, ...)
  self.count = 1
@/lua/vehicle/controller/tirePressureControl.lua

local function init(jbeamData)
end
@/lua/ge/extensions/core/cameraModes/onboard.lua

function C:init()
  self.manualzoom = manualzoom()
  self.manualzoom = manualzoom()
  self.manualzoom:init(self.fov)
  self:onVehicleCameraConfigChanged()
  setmetatable(o, C)
  o:init()
  return o
@/lua/ge/extensions/editor/util/plotHelperUtil.lua
-- params.catmullromCurveLines = x or nil (x > 200 preferably)
function C:init(params)
  params = params or {
  idCounter = idCounter + 1
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/gameplay/crawl/stopCrawl.lua

function C:init(mgr)
  self.bridge = require('ge/extensions/gameplay/crawl/flowgraphBridge')
@/gameplay/missionTypes/drift/customNodes/extractWaypointsNode.lua

function C:init()
  self.extractedWaypoints = {}
@/lua/ge/extensions/flowgraph/nodes/ui/startScreen.lua

function C:init()
  self.open = false
@/lua/ge/extensions/flowgraph/nodes/career/onGarageEvent.lua

function C:init()
  self.flags = {}
@/lua/ge/extensions/core/cameraModes/driver.lua

function C:init()
  self.saveTimeout = nil
  self.lookAheadSmoothness = settings.getValue("cameraDriverLookAheadSmoothness") / 100
  self.manualzoom:init(settings.getValue('cameraDriverFov'), nil, nil, "ui.camera.fovDriver")
  self.openXRsnapTurnDriver = settings.getValue('openXRsnapTurnDriver')
  setmetatable(o, C)
  o:init()
  return o
@/lua/vehicle/controller/tech/tyreBarrier.lua
-- Initialisation callback (called once when this controller is instantiated).
local function init(data)
  isPreamble = true
@/lua/vehicle/controller/vehicleController/shiftLogic/automaticGearbox.lua

local function init(jbeamData, sharedFunctionTable)
  sharedFunctions = sharedFunctionTable
@/lua/ge/extensions/gameplay/missions/missionTypes/baseMission.lua
-- This is called when a mission of this type is being created. Load files, initialize variables etc
function C:init()
  self.missionTypeLabel = "bigMap.missionLabels."..self.missionType
  C.__index = C
  o:init()
  for k, v in pairs(derivedClass) do
  end
  local init = o:init()
  return o, init
@/lua/ge/extensions/flowgraph/nodes/vehicle/getElectricsValue.lua

function C:init()
  self:onNodeReset()
@/gameplay/missionTypes/simpleLapconfigScenario/editor.lua

function C:init()
@/lua/vehicle/controller/propAnimation/singleAxisLever.lua

local function init(jbeamData)
  local gearCoordinateTable = tableFromHeaderTable(jbeamData.gearCoordinates or {})
@/lua/ge/extensions/flowgraph/nodes/gameplay/sites/location.lua

function C:init(mgr, ...)
  self.options = {"key"}
@/lua/ge/extensions/flowgraph/basenode.lua

function C:init(mgr, graph, forceId)
  self.mgr = mgr
  C.__index = C
  o:init(...)
  return o
  if o.init ~= baseInit then
    o:init()
  end
@/lua/ge/extensions/flowgraph/nodes/vehicle/ai/arrive.lua

function C:init()
  self.sentCommand = false
@/lua/ge/extensions/flowgraph/nodes/scene/raceLineParking.lua

function C:init(mgr, ...)
@/lua/ge/extensions/gameplay/markers/driftLineMarker.lua

function C:init()
  self.id = idCounter
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/editor/missionEditor/setupModules.lua

function C:init(missionEditor)
  self.missionEditor = missionEditor
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/modules/vehicleModule.lua
C.hooks = {'onCouplerAttached', 'onCouplerDetached','onBusUpdate', 'onVehicleResetted'}
function C:init()
  self.vehicles = {}
@/lua/ge/extensions/flowgraph/nodes/gameplay/traffic/trafficCustomGroup.lua

function C:init()
  self.mode = 'settings'
@/lua/ge/extensions/flowgraph/nodes/mission/selectHeistMissionSpots.lua

function C:init()
  self.spots = {}
@/lua/vehicle/controller/tech/recorders.lua

local function init()
  if not nodeCache then
@/lua/ge/extensions/editor/flowgraph/basewindow.lua

function C:init(fgEditor)
  self.fgEditor = fgEditor
  C.__index = C
  o:init(...)
  return o
  if o.init ~= baseInit then
    o:init()
  end
@/lua/vehicle/controller/drivingDynamics/supervisors/yawControl.lua

local function init(jbeamData)
  controlParameters = {isEnabled = true}
@/lua/ge/extensions/flowgraph/nodes/math/ease.lua

function C:init()
  self.easeFuncName = 'linear'
@/lua/ge/extensions/gameplay/sites/customFields.lua

function C:init()
  self.names = {}
  C.__index = C
  o:init(...)
  return o
@/gameplay/missionTypes/timeTrial/constructor.lua

function C:init()
  self.supportsReplay = true
@/lua/ge/extensions/flowgraph/nodes/logic/sequencer.lua

function C:init()
  self.count = 1
@/lua/ge/extensions/editor/gen/exp_solidflex.lua
--        W.test()
        W.init()
    else
    else
        W.init()
    end
        aa = {0}
        W.init()
    elseif k == 'visc_in' then
    if true then
        W.init()
--[[
@/lua/ge/extensions/gameplay/traffic/roles/standard.lua

function C:init()
  self.personalityModifiers = {}
@/lua/ge/extensions/core/cameraModes/external.lua

function C:init()
  self.disabledByDefault = true
  self.noise = noise()
  self.noise:init(0.14)
  self.smooth = smooth()
  self.smooth = smooth()
  self.smooth:init(20, 2.0)
  self.handheld = handheld()
    if self.isFanMode then
      self.autozoom:init(newTemporalSmoothing(15, 15))
      self.autozoom.steps = { {  0, z*70}, {1.5, z*60}, {  3, z*40}, {  6, z*30}, { 10, z*25}, { 40, z*15}, { 90, z*15}, {150, z*15} }
    else
      self.autozoom:init(newTemporalSpring(15, 10))
      self.autozoom.steps = { {  0, z*70}, {1.5, z*60}, {  3, z*60}, {  8, z*60}, { 20, z*40}, { 50, z*30}, {125, z* 20}, {200, z* 15} }
    if carStopped then
      self.handheld:init(20, 5, 2)
      self.noise:init(0.02)
      self.handheld:init(20, 5, 2)
      self.noise:init(0.02)
    else
    else
      self.handheld:init(40, 9, dzRandom(0.25, 0.7))
      self.noise:init(0.04)
      self.handheld:init(40, 9, dzRandom(0.25, 0.7))
      self.noise:init(0.04)
    end
  else
    self.handheld:init(80, 15, 0.05)
    self.predictor.future = dzRandom(0.05,0.35)
  end
  self.smooth:init(nil, nil, self.camPos)
  self:applyOffset(nx, ny, nz, findRandomAttachedNodePosition(veh), openxrSessionRunning) -- distance to current vehicle center
  setmetatable(o, C)
  o:init()
  return o
@/lua/vehicle/controller/couplings/kingpin.lua

local function init(jbeamData)
  local kingpinNodeName = jbeamData.kingpinNode
@/lua/ge/extensions/flowgraph/nodes/career/onIntroPopupCareerClosed.lua

function C:init()
  self.flags = {}
@/lua/ge/extensions/gameplay/delivery/delivery.lua

function C:init()
  C.__index = C
  o:init(...)
  return o
@/ui/ui-vue/src/services/dirty.js

  function init(val) {
    const type = typeof val

  init(valueRef.value)
    const unwatch = watch(valueRef, newVal => {
      init(newVal)
      if (hasInitValue) unwatch()
@/lua/ge/extensions/flowgraph/nodes/gameplay/race/pathDefaultStartTransform.lua

function C:init(mgr, ...)
  self.path = nil
@/lua/vehicle/controller/tech/MQTToutput.lua

local function init(jbeamData)
  for wheelId, wheel in pairs(wheels.wheels) do
@/lua/ge/extensions/scenario/raceGoals.lua
  for _, goal in pairs(goals) do
    goal.init(scenario)
  end
@/lua/ge/extensions/scenario/nomoveGoal.lua

local function init(scenario)
  M.instances = {}
@/ui/lib/ext/angular/angular-animate.js

    return function init(element, initialOptions) {
      // all of the animation functions should create
@/lua/ge/extensions/flowgraph/nodes/career/addToInventory.lua

function C:init()
@/lua/ge/extensions/gameplay/race/race.lua

function C:init()
  self.path = nil
  C.__index = C
  o:init(...)
  return o
@/gameplay/missionTypes/drift/customNodes/wrongWayNode.lua

function C:init()
  self.lastDist = 0
@/lua/vehicle/controller/tech/mesh.lua
-- Initialises this sensor instance.
local function init(data)
    sensorId = data.sensorId
@/lua/ge/extensions/flowgraph/nodes/ui/imgui/elemental/imBegin.lua

function C:init()
  self.done = false
@/lua/vehicle/controller/drivingDynamics/supervisors/components/brakeControl.lua

local function init(jbeamData)
  M.isActingAsTC = false
@/lua/ge/extensions/flowgraph/nodes/gfx/blur.lua

function C:init(mgr, ...)
  self.lastWorking = 0
@/lua/ge/extensions/flowgraph/nodes/ui/customButtonTEST.lua

function C:init()
  self.open = false
@/lua/ge/extensions/editor/rallyEditor/static.lua

function C:init(rallyEditor)
  self.rallyEditor = rallyEditor
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/gameplay/missions/missionTypes/editorHelper.lua
  if o.init then
    o:init()
  end
@/lua/vehicle/controller/tech/advancedIMU.lua
-- Initialises this sensor instance.
local function init(data)
  state.sensorId = data.sensorId -- The unique Id (integer) for this sensor instance.
@/lua/vehicle/controller/propAnimation/dualAxisLever.lua

local function init(jbeamData)
  targetModeQueue = dequeue.new()
@/lua/ge/extensions/freeroam/dragRace.lua

local function init()
  started = false
    displayOverview(true, true)
    init()
  end
    if data.event == "enter" then
      init()
      opponentVehicle:queueLuaCommand('ai.setSpeed(5)')
local function selectOpponent(selection)
  init()
  resetDisplays()
@/lua/ge/extensions/util/terrainGenerator.lua

function C:init(data)
  data = data or {}
      local b = GBitmap()
      b:init(self.terrainWidth, self.terrainWidth)
      b:fillColor(ColorI(n, n, n, 255))
  C.__index = C
  o:init(data)
  return o
@/lua/ge/extensions/flowgraph/nodes/gameplay/sites/posInZone.lua

function C:init(mgr, ...)
end
@/lua/ge/extensions/flowgraph/nodes/vehicle/randomConfigProvider.lua

function C:init()
  self.models = {}
@/lua/common/utils/heatmap.lua

local function init(_filename)
  filename = _filename
@/lua/vehicle/protocols/motionSim.lua

local function init() end
local function reset() end
@/lua/vehicle/controller/sound/AVAS.lua

local function init(jbeamData)
end
@/lua/ge/extensions/gameplay/sites/zone.lua

function C:init(sites, name, forceId)
  self.sites = sites
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/scenario/raceMarkers/cylinderMarker.lua
-- called when this object is created. initialize variables here (but dont spawn objects)
function C:init(id)
  self.id = id
  C.__index = C
  o:init(...)
  return o
@/lua/vehicle/controller/pneumatics.lua

local function init(jbeamData)
  local pressureLevels = {minPressure = 0, maxPressure = 0}
@/lua/ge/extensions/flowgraph/nodes/timetrials/onRaceStart.lua

function C:init(mgr, ...)
  self.started = false
@/gameplay/missionTypes/cannon/customNodes/cannonBallDistNode.lua

function C:init()
@/lua/vehicle/controller/drivingDynamics/supervisors/yawProviders/STMEstimate.lua

local function init(jbeamData)
  M.isActive = true
@/lua/ge/extensions/editor/flowgraph/nodelibrary.lua
local sharedFrecency = nil
function C:init()
  self.searchText = im.ArrayChar(128)
@/lua/ge/extensions/gameplay/rally/loop/speedingDetector.lua

function C:init(manager)
  self.manager = manager
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/editor/util/searchUtil.lua
-- initializes stuff for the helper.
function C:init()
  self.scoringFunction = defaultScoringFunction
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/gameplay/traffic/signals/fileTrafficSignals.lua

function C:init()
  self.signalsData = nil
@/lua/ge/extensions/flowgraph/nodes/gameplay/blacklistWalking.lua
C.dependencies = {'gameplay_walk'}
function C:init(mgr, ...)
end
@/lua/ge/extensions/flowgraph/nodes/util/pushActionMap.lua

function C:init(mgr, ...)
  self:_executionStopped()
@/lua/ge/extensions/freeroam/bigMapMode.lua
        camMode.fovMax = maxFovPtr[0]
        camMode.manualzoom:init(camMode.fovMax, camMode.fovMin, camMode.fovMax)
        camMode:onCameraChanged(true)
        camMode.fovMin = minFovPtr[0]
        camMode.manualzoom:init(camMode.fovMax, camMode.fovMin, camMode.fovMax)
        camMode:onCameraChanged(true)
@/lua/ge/extensions/flowgraph/nodes/environment/directionalGravity.lua
C.gConst = 6.6742 * math.pow(10, -11) --(m3,s-2,kg-1)
function C:init()
  --self.data.clearPlanets = true
@/lua/vehicle/controller/beaconSpin.lua

local function init(jbeamData)
  beaconSpeed = jbeamData.spinSpeed or 320
@/lua/ge/extensions/editor/sitesEditor/parkingSpots.lua

function C:init(sitesEditor, key)
  self.sitesEditor = sitesEditor
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/vehicle/touchingProps.lua

function C:init(mgr, ...)
@/gameplay/missionTypes/evade/customNodes/multiVehicleLuaNode.lua

function C:init()
  self.data.ignoreUndrivableVehicles = true
@/lua/ge/extensions/flowgraph/nodes/gameplay/crawl/applyPenalty.lua

function C:init(mgr)
  self.bridge = require('ge/extensions/gameplay/crawl/flowgraphBridge')
@/lua/ge/extensions/flowgraph/nodes/ui/selectButtons.lua

function C:init()
  self.open = false
@/gameplay/missionTypes/dragStripAPM/constructor.lua

function C:init()
  self.latestVersion = version
@/lua/ge/extensions/scenario/waypointAction.lua

local function init(scenario)
  M.instances = {}
@/lua/vehicle/controller/hydraulics/electricHydraulics.lua

local function init(jbeamData)
  electricsNames = type(jbeamData.controlElectricsName) ~= "table" and {jbeamData.controlElectricsName} or jbeamData.controlElectricsName
@/lua/ge/extensions/editor/flowgraph/search.lua

function C:init()
  editor.registerWindow(self.windowName, im.ImVec2(150,300), nil, false)
@/lua/ge/extensions/flowgraph/nodes/mission/stageLightsDragRace.lua

function C:init()
  self.lights = {}
@/lua/ge/extensions/flowgraph/nodes/gameplay/rally/vehicleStoppedNearPos.lua

function C:init(mgr, ...)
  self.timer = 0
@/lua/vehicle/controller/esc.lua

local function init(jbeamData)
  configData = jbeamData
@/lua/ge/extensions/editor/rallyEditor/pacenotes.lua

function C:init(rallyEditor)
  self.rallyEditor = rallyEditor
  C.__index = C
  o:init(...)
  return o
@/lua/vehicle/controller/vehicleController/vehicleController.lua
  if controlLogicModule then
    controlLogicModule.init(jbeamData, sharedFunctions)
    controlLogicModule.gearboxHandling = gearboxHandling

local function init(jbeamData)
  M.throttle = 0

  controlLogicModule.init(jbeamData, sharedFunctions)
  controlLogicModule.gearboxHandling = gearboxHandling
  --drivingStrategy.core = require(drivingStrategyCoreModulePath)
  --drivingStrategy.core.init(M)
  --  drivingStrategy[v] = require(drivingStrategyModuleDirectory .. v)
  --  drivingStrategy[v].init(M)
  --end
@/lua/ge/extensions/scenario/raceMarkers/overhead.lua
-- called when this object is created. initialize variables here (but dont spawn objects)
function C:init(id)
  self.id = id
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/util/routePosition.lua

function C:init()
  self:onNodeReset()
@/lua/vehicle/controller/hydraulics/orbitrolSteering.lua

local function init(jbeamData)
  steeringPID = newPIDParallel(jbeamData.steeringPIDKp or 0.5, jbeamData.steeringPIDKi or 0.3, jbeamData.steeringPIDKd or 0.01, -1, 1, 1000, 1000, -1, 1, 0.002)
@/lua/ge/extensions/gameplay/rally/loop/roadSectionPenaltyKeeper.lua

function C:init(manager)
  self.manager = manager
  C.__index = C
  o:init(...)
  return o
@/lua/vehicle/controller/beamNavigator.lua

local function init(jbeamData)
  screenMaterialName = jbeamData.screenMaterialName or "@screen_gps"
@/lua/ge/extensions/flowgraph/nodes/string/format.lua

function C:init()
  self.data.pattern = "%d"
@/lua/vehicle/extensions/api.lua
        log('E', "default.init", "INIT WEBSERVER TO PORT "..port)
        httpJsonServer.init(bindHost, port, handleServerRequest)
        inited = true
@/lua/vehicle/mapmgr.lua

local function init()
  if wheels.wheelCount > 0 or (v.data.general and v.data.general.enableTracking) then
@/lua/ge/extensions/flowgraph/nodes/activity/autoStarGoals.lua

function C:init()
end
@/lua/ge/extensions/flowgraph/nodes/scene/camera/setCameraPosition.lua

function C:init()
  self.position = vec3(0,0,0)
@/lua/vehicle/controller/drivingDynamics/sensors/sensorHub.lua

local function init(jbeamData)
  M.gravity = obj:getGravity()
@/lua/ge/extensions/flowgraph/nodes/activity/attemptStars.lua

function C:init()
  self.savePins = true
@/lua/ge/extensions/gameplay/rally/loop/rallyEventLog.lua

function C:init()
  -- Array of all logged items, ordered by timestamp
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/ui/setUILayout.lua

function C:init()
  self.useFreeroamMenuWhenUnrestricted = true
@/lua/ge/extensions/flowgraph/nodes/ui/imgui/elemental/imSeparator.lua

function C:init()
  self.data.aboveSpacing = 5
@/lua/ge/extensions/editor/missionEditor/previewChecker.lua

function C:init(missionEditor)
  self.missionEditor = missionEditor
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/ui/buttons/simpleMultipleButtons.lua

function C:init()
  self.count = 1
@/lua/ge/extensions/flowgraph/nodes/ui/updatedUI/endScreenTimeSlip.lua

function C:init()
  self.panel = {
@/lua/ge/extensions/editor/missionEditor/progressMulti.lua

function C:init(missionEditor)
  self.missionEditor = missionEditor
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/editor/missionEditor/careerSetup.lua

function C:init(missionEditor)
  self.missionEditor = missionEditor
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/editor/vehicleEditor/staticEditor/veStaticRenderView.lua
-- Load renderviews data in memory (not actually creating renderviews)
local function init()
  local viewsSerialized = jsonReadFile(settingsPath)
local function onEditorInitialized()
  init()
@/lua/vehicle/controller/drivingDynamics/actuators/adaptiveDampers.lua

local function init(jbeamData)
  local dampBeamNames = jbeamData.dampBeamNames or {}
@/lua/ge/extensions/gameplay/rally/driveline/drivelineV3.lua

function C:init(missionDir)
  self.missionDir = missionDir
  C.__index = C
  o:init(...)
  return o
@/gameplay/missionTypes/hypermiling/editor.lua

function C:init()
  self:addString("Start Screen Text","introText","Hypermiling Intro Text",9000, {tooltip = "The text that displays on the start screen.", isTranslation = true})
@/lua/vehicle/controller/braking/compressionBrake.lua

local function init(jbeamData)
  local engineName = jbeamData.controlledEngine or "mainEngine"
@/lua/ge/extensions/flowgraph/nodes/gameplay/rally/countdown.lua

function C:init(mgr, ...)
  self.data.useImgui = false
@/lua/ge/extensions/flowgraph/nodes/ui/imgui/imDialogue.lua

function C:init()
  self.options = { "accept", "decline" }
@/gameplay/missions/italy/flowgraph/001-Gravity/constructor.lua

function C:init()
  self.defaultAggregateValues = {
return function()
  C:init()
  return C
@/lua/ge/extensions/flowgraph/nodes/gameplay/race/imRaceTimes.lua

function C:init(mgr, ...)
  self.data.detailed = false
@/lua/ge/extensions/core/cameraModes/topDown.lua

function C:init()
  self.disabledByDefault = true
  setmetatable(o, C)
  o:init()
  return o
@/lua/ge/extensions/flowgraph/nodes/timetrials/onRaceCheckpoint.lua

function C:init(mgr, ...)
  self.enterFlag = false
@/lua/ge/extensions/flowgraph/nodes/vehicle/ai/getAIMode.lua

function C:init()
@/lua/vehicle/controller/braking/brakedDifferentialSteering.lua

local function init(jbeamData)
  steeringPlay = jbeamData.steeringPlay or 0
@/lua/vehicle/controller/airplaneSurfaces.lua

local function init(jbeamData)
  electrics.values.rudder = 0
@/lua/ge/extensions/flowgraph/nodes/util/firstElement.lua

function C:init(mgr)
end
@/lua/ge/extensions/flowgraph/nodes/vehicle/onVehicleReset.lua

function C:init(mgr, ...)
@/lua/ge/extensions/flowgraph/nodes/vehicle/special/vehicleAction.lua

function C:init()
  self.models = {}
@/lua/ge/extensions/gameplay/rally/recceSettings.lua

function C:init()
  self.fname = rallyUtil.rallySettingsRoot..'/recce.json'
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/gameplay/traffic/trafficMoveGroup.lua

function C:init()
  self:onNodeReset()
@/lua/ge/extensions/flowgraph/nodes/gameplay/rally/vehicleStoppedNearPlane.lua

function C:init(mgr, ...)
  self.timer = 0
@/lua/vehicle/controller/lineLock.lua

local function init(jbeamData)
  name = jbeamData.name
@/lua/vehicle/bdebug.lua
    bdebugImpl = require('bdebugImpl')
    bdebugImpl.init(bdebugImplSavedState, _state)

local function init()
end
@/lua/ge/extensions/flowgraph/nodes/vehicle/onVehicleDestroyed.lua

function C:init(mgr, ...)
@/lua/ge/extensions/gameplay/drift/stuntZones/nearPole.lua

function C:init(data)
  self.data = data
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/vehicle/special/wheelDistance.lua

function C:init()
  self.data.debug = false
@/lua/vehicle/protocols.lua
  if type(protocol.module.init) == "function" then
    protocol.module.init()
  end
local function settingsChanged()
  init()
end
@/lua/vehicle/controller/couplings/fifthwheel.lua

local function init(jbeamData)
  local fifthwheelNodeName = jbeamData.fifthwheelNode
@/lua/vehicle/controller/gauges/customModules/navigationData.lua

local function init(jbeamData)
end
@/lua/ge/extensions/flowgraph/nodes/gameplay/crawl/resetCrawl.lua

function C:init(mgr)
  self.bridge = require('ge/extensions/gameplay/crawl/flowgraphBridge')
@/lua/ge/extensions/flowgraph/nodes/debug/multiFlow.lua
C.tags = {'util'}
function C:init()
  self.data.logOnWork = false
@/lua/ge/extensions/gameplay/rally/notebook/structured/visualCompositor.lua

function C:init(textCompositor)
  self.textCompositor = textCompositor
  C.__index = C
  o:init(...)
  return o
@/lua/vehicle/controller/hydraulicSuspension.lua

local function init(jbeamData)
  local hydraulicsData = v.data[jbeamData.hydraulicBeams or "hydraulicsData"] or {}
@/lua/vehicle/controller/pyrotechnicCharge.lua

local function init(jbeamData)
  hasTriggered = false
@/lua/ge/extensions/core/cameraModes/gameengine.lua

function C:init()
  self.isGlobal = true
  setmetatable(o, C)
  o:init()
  return o
@/lua/ge/extensions/flowgraph/nodes/environment/setTimeOfDay.lua

function C:init(mgr)
  self.data.restoreTod = true
@/gameplay/missionTypes/rallyLoop/editor.lua

function C:init()
  self:addDecoHeader("Mission Screen Text",'orange')
@/lua/ge/extensions/flowgraph/nodes/mission/clearLightsDragRace.lua

function C:init()
  self.lights = {}
@/gameplay/missionTypes/aiRace/customNodes/activateRaceNode.lua

function C:init(mgr, ...)
  self.started = false
@/lua/ge/extensions/flowgraph/nodes/logic/booleanExpression.lua

function C:init()
  self.data.safeMode = true
@/lua/ge/extensions/core/cameraModes/predictor.lua

function C:init(dtFuture)
  self.isFilter = true
  setmetatable(o, C)
  o:init()
  return o
@/lua/ge/extensions/editor/vehicleEditor/liveEditor/veAdjustableTechCarTuner.lua

local function init()
  local vehData = core_vehicle_manager.getPlayerVehicleData()
    if not initFlag then
      init()
      initFlag = true
@/lua/ge/extensions/core/settings/graphicsQualityGroup.lua

function C:init(qualitiyLevelsFilename, groupName)
  self.currentQualityLevel = ""
  setmetatable(o, C)
  o:init(qualitiyLevelsFilename, groupName)
  return o
@/lua/vehicle/controller/gauges/customModules/dynamicRedlineData.lua

local function init(jbeamData)
  minOutput = jbeamData.minOutput or 0
@/lua/ge/extensions/gameplay/markers/walkingMarker.lua
local screenObjTemp = nil
function C:init()
  self.visible = true
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/mission/selectGarageSpots.lua

function C:init()
  self.spots = {}
@/lua/ge/extensions/flowgraph/nodes/vehicle/ai/directlyTo.lua

function C:init()
  self.started = false
@/lua/ge/extensions/flowgraph/nodes/vehicle/flipUpright.lua

function C:init()
  --self.data.useWheelCenter = false
@/lua/vehicle/hydros.lua

local function init()
  if v.data.input and v.data.input.FFBcoef ~= nil then
@/gameplay/missionTypes/arrive/constructor.lua

function C:init()
  self.latestVersion = version
@/lua/vehicle/controller/drivingDynamics/supervisors/components/diffControl.lua

local function init(jbeamData)
  M.isActingAsTC = false
@/lua/ge/extensions/flowgraph/nodes/gfx/dof.lua

function C:init(mgr, ...)
  self:reset()
@/lua/ge/extensions/gameplay/race/startPosition.lua

function C:init(race, name)
  self.race = race
  C.__index = C
  o:init(...)
  return o
@/lua/vehicle/controller/drivingDynamics/sensors/vehicleData.lua

local function init(jbeamData)
end
@/lua/ge/extensions/flowgraph/nodes/gameplay/decalSingle.lua

function C:init()
end
@/gameplay/missionTypes/drift/constructor.lua

function C:init()
  self.latestVersion = version
@/lua/ge/extensions/flowgraph/variableStorage.lua

function C:init(mgr)
  self.mgr = mgr
  end
  self.variables[name].mergeFuns.init(self.variables[name])
  return true
    self.variables[name].mergeFuns.finalize(self.variables[name])
    self.variables[name].mergeFuns.init(self.variables[name])
  end
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/editor/sitesEditor/zones.lua

function C:init(sitesEditor, key)
  self.sitesEditor = sitesEditor
  C.__index = C
  o:init(...)
  return o
@/gameplay/missionTypes/dragStripAPM/editor.lua

function C:init()
@/lua/ge/extensions/flowgraph/nodes/debug/testDynamic.lua

function C:init(mgr, ...)
  self.timer = 0
@/lua/ge/extensions/gameplay/crashTest/scenarioManager.lua
  markers = require('scenario/race_marker')
  markers.init()
@/lua/ge/extensions/flowgraph/nodes/gameplay/rally/rallySuperCountdown.lua

function C:init(mgr, ...)
  self.data.useImgui = false
@/lua/vehicle/controller/loggerTemplate.lua
-- This is called once when a vehicle is created
local function init()
  csvData = csvWriter.newCSV("time", "throttle", "brake", "batteryCapacity", "motorPower")
@/lua/ge/extensions/flowgraph/nodes/career/completeLinearTutorialStep.lua

function C:init()
@/lua/ge/extensions/editor/crawlEditor/waypoints.lua

function C:init(crawlEditorParam)
  self.crawlEditor = crawlEditorParam
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/core/vehicles.lua
      veh:createUITexture(textureTagPrefix, designData.data.generator, designData.data.size.x, designData.data.size.y, UI_TEXTURE_USAGE_AUTOMATIC, 1) --UI_TEXTURE_USAGE_MANUAL
      veh:queueJSUITexture(textureTagPrefix, 'init("diffuse","' .. txt .. '", '.. jsonEncode(designData) .. ');')
      veh:createUITexture(textureTagPrefix.."-normal", designData.data.generator, designData.data.size.x, designData.data.size.y, UI_TEXTURE_USAGE_AUTOMATIC, 1)
      veh:queueJSUITexture(textureTagPrefix.."-normal", 'init("bump","' .. txt .. '", '.. jsonEncode(designData) .. ');')
      veh:createUITexture(textureTagPrefix.."-specular", designData.data.generator, designData.data.size.x, designData.data.size.y, UI_TEXTURE_USAGE_AUTOMATIC, 1)
      veh:queueJSUITexture(textureTagPrefix.."-specular", 'init("specular","' .. txt .. '", '.. jsonEncode(designData) .. ');')
@/lua/ge/extensions/flowgraph/nodes/gameplay/playerMoves.lua

function C:init()
  self.initialPos = nil
@/lua/vehicle/powertrain/supercharger.lua

local function init(device, jbeamData)
  if jbeamData == nil then
@/lua/ge/extensions/flowgraph/nodes/events/controlsReset.lua

function C:init(mgr, ...)
  self.reset = false
@/lua/ge/extensions/flowgraph/nodes/tech/getUltrasonicReadings.lua

function C:init()
@/lua/ge/extensions/flowgraph/nodes/gameplay/crawl/setupCrawl.lua

function C:init(mgr)
  self.bridge = require('ge/extensions/gameplay/crawl/flowgraphBridge')
@/lua/vehicle/controller/nitrousOxideInjection.lua

local function init(jbeamData)
  M.updateGFX = nop
@/lua/ge/extensions/flowgraph/nodes/gameplay/recoveryPrompt/setRecoveryPromptLimit.lua
}
function C:init()
  self.savePins = true
@/gameplay/missionTypes/collection/editor.lua

function C:init()
@/lua/ge/extensions/flowgraph/nodes/vehicle/setLightbar.lua

function C:init()
@/lua/ge/extensions/flowgraph/nodes/vehicle/isPlayerUsable.lua
}
function C:init()
@/gameplay/missionTypes/generatedTimeTrial/editor.lua

function C:init()
  self:addDecoHeader("Creating a Time Trial")
@/lua/ge/extensions/editor/util/vehicleFilterUtil.lua

function C:init(element)
  self.element = element
  C.__index = C
  o:init(element)
  return o
@/lua/ge/extensions/gameplay/rally/recce.lua

function C:init(missionDir)
  self.missionDir = missionDir
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/editor/flowgraph/references.lua

function C:init()
  editor.registerWindow(self.windowName, im.ImVec2(150, 300), nil, false)
@/lua/vehicle/controller/vehicleController/shiftLogic/cvtGearbox2.lua

local function init(jbeamData, sharedFunctionTable)
  sharedFunctions = sharedFunctionTable
@/lua/vehicle/controller/drivingDynamics/actuators/adaptiveTorsionBars.lua

local function init(jbeamData)
  local torsionBarNames = jbeamData.torsionBarNames or {}
@/lua/ge/extensions/flowgraph/nodes/gameplay/traffic/setVehicleData.lua

function C:init()
  self.vars = {}
@/lua/ge/extensions/flowgraph/nodes/debug/debugPrism.lua

function C:init()
end
@/lua/ge/extensions/scenario/timeLimit.lua

local function init(scenario)
  M.instances = {}
@/lua/ge/extensions/gameplay/traffic/roles/suspect.lua

function C:init()
  self.personalityModifiers = {
@/lua/ge/extensions/flowgraph/nodes/vehicle/groundDistance.lua

function C:init()
  self.data.drawDebug = false
@/lua/vehicle/controller/drivingDynamics/supervisors/components/awdControl.lua

local function init(jbeamData)
  M.isActingAsTC = false
@/lua/ge/extensions/gameplay/rally/notebook/missionSettings.lua

function C:init(missionDir)
  self.missionDir = missionDir
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/gameplay/sites/parkingspot.lua

function C:init(mgr, ...)
  self.options = {"key"}
@/lua/ge/extensions/flowgraph/nodes/ui/vehicleSelector.lua

function C:init()
  self.open = false
@/lua/vehicle/controller/4wd.lua

local function init(jbeamData)
  shaft = powertrain.getDevice(jbeamData.shaftName)
@/lua/ge/extensions/flowgraph/nodes/util/template.lua
-- This gets called when the node has been created for the first time. Init field here
function C:init(mgr)
  print("This node was initalized!")
@/lua/ge/extensions/gameplay/rally/cameraPathPlayer.lua

function C:init(snaproad)
  self.snaproad = snaproad
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/environment/simplePlanet.lua

function C:init()
  self.vehicle = nil
@/lua/ge/extensions/flowgraph/nodes/vehicle/recoverInPlace.lua

function C:init()
@/lua/ge/extensions/editor/api/guiInstancer.lua

function C:init()
  self.instances = {} -- the instances for this gui window
  C.__index = C
  o:init()
  return o
@/lua/ge/extensions/core/camera.lua
      cam:update(camData)
      if not validateData(camData) and cam.init then cam:init() end -- if present, clean up NaN/infs in camera state, by re-initting it
    else
@/lua/vehicle/bdebugImpl.lua

local function init(savedState, newPartialState)
  log('D', 'bdebugImpl.init', 'init')
@/lua/ge/extensions/flowgraph/nodes/math/quaternion/direction.lua

function C:init()
  self.oldIn = nil
@/ui/uidevtools/src/stores/messageStore.js

  async function init() {
    db = await openDatabase()
@/lua/vehicle/controller/advancedCouplerControl.lua

local function init(jbeamData)
  --print(M.name)
@/lua/ge/extensions/editor/flowgraph/welcome.lua

function C:init()
  editor.registerWindow(self.windowName, im.ImVec2(150,300), nil, true)
@/lua/ge/extensions/core/cameraModes/autozoom.lua

function C:init(smoother)
  self.isFilter = true
  setmetatable(o, C)
  o:init()
  return o
@/lua/ge/extensions/flowgraph/nodes/util/roadSegment.lua

function C:init()
  self._n1, self._n2 = nil, nil
@/lua/ge/extensions/editor/flowgraph/nodePreview.lua

function C:init()
  self.hoverInstance = nil
@/gameplay/missionTypes/flowgraph/editor.lua

function C:init()
  self.currentConfig = nil
@/lua/ge/extensions/tech/capturePlayer.lua
  local bitmap = GBitmap()
  bitmap:init(size[1], size[2], true)
  bitmap:fromBuffer(data)
@/lua/ge/extensions/flowgraph/nodes/string/subString.lua

function C:init()
  self.data.from = 0
@/gameplay/missionTypes/evade/constructor.lua

function C:init()
  self.latestVersion = version
@/gameplay/missionTypes/dragStripRace/constructor.lua

function C:init()
  self.latestVersion = version
@/lua/ge/extensions/gameplay/rally/loop/rallyLoopManager.lua

function C:init(missionId, missionDir)
  if gameplay_rallyLoop and gameplay_rallyLoop.getDebugLogging() then log('D', logTag, '<<<<< RallyLoopManager init >>>>>') end
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/scene/camera/setCameraRotation.lua

function C:init()
  self.rotation = quat(0,0,0,0)
@/lua/ge/extensions/flowgraph/nodes/debug/debugText.lua

function C:init()
end
@/lua/ge/extensions/flowgraph/nodes/logic/select.lua

function C:init()
  self.count = 1
  local var = {value = nil}
  fg_utils.mergeFuns.any[self.mode].init(var)
  local selecting = false
@/lua/vehicle/controller/inputOutputDemo.lua
--This is called once when a vehicle is created
local function init()
  csvHeaders = {"time", "throttle", "brake", "batteryCapacity", "motorPower"}
@/lua/ge/extensions/flowgraph/baseModule.lua

function C:init(mgr)
  self.mgr = mgr
  C.__index = C
  o:init(...)
  return o
  if o.init ~= baseInit then
    o:init()
  end
@/lua/ge/extensions/flowgraph/nodes/ui/rtMessage.lua

function C:init()
@/lua/ge/extensions/editor/rallyEditor/drivelineTab.lua

function C:init(rallyEditor)
  self.path = nil
  C.__index = C
  o:init(...)
  return o
@/gameplay/missionTypes/precisionParking/editor.lua

function C:init()
  self:addNumeric("Available Time","availableTime",60)
@/lua/ge/extensions/editor/tech/roadArchitect/terraform.lua
  local bmp = GBitmap()
  bmp:init(xSize, ySize)
  bmp:allocateBitmap(xSize, ySize, false, "GFXFormatR16")
@/lua/vehicle/controller/braking/adaptiveBrakeLights.lua

local function init(jbeamData)
  electricsName = jbeamData.electricsName or "brakelights"
@/lua/ge/extensions/gameplay/rally/snaproad.lua

function C:init(driveline)
  self._driveline = driveline
  C.__index = C
  o:init(...)
  return o
@/lua/vehicle/controller.lua
      c.typeName = fileName
      c.init(data)
      c.manualOrder = data.manualOrder

local function init()
  loadedControllers = {}

        controller.init(data)
        controller.manualOrder = data.manualOrder
      loadedControllers[dummyName] = controller
      controller.init()
      controller.name = dummyName
    if not v.reset then
      v.init(controllerJbeamData[v.name])
    end
@/lua/ge/extensions/flowgraph/nodes/gameplay/race/raceCpLapChange.lua
      self.markers = require('scenario/race_marker')
      self.markers.init()
      local wps = {}
@/lua/ge/extensions/flowgraph/nodes/scene/idByName.lua

function C:init()
  self.data.name = ""
@/lua/ge/extensions/flowgraph/nodes/macro/integrated.lua

function C:init()
  self.savePins = true
@/lua/ge/extensions/flowgraph/graph.lua

function C:init(mgr, name, forceId)
  self.mgr = mgr
  C.__index = C
  o:init(...)
  return o
@/lua/vehicle/beamstate.lua

local function init()
  M.damage = 0
local function reset()
  init()
  M.lowpressure = false
@/lua/ge/extensions/flowgraph/nodes/scene/getPointOnDecalroad.lua
C.tags = {}
function C:init()
@/ui/lib/ext/angular-material/angular-material.min.js
A100:"#82b1ff",A200:"#448aff",A400:"#2979ff",A700:"#2962ff",contrastDefaultColor:"light",contrastDarkColors:"100 200 300 400 A100",contrastStrongLightColors:"500 600 700 A200 A400 A700"},"light-blue":{50:"#e1f5fe",100:"#b3e5fc",200:"#81d4fa",300:"#4fc3f7",400:"#29b6f6",500:"#03a9f4",600:"#039be5",700:"#0288d1",800:"#0277bd",900:"#01579b",A100:"#80d8ff",A200:"#40c4ff",A400:"#00b0ff",A700:"#0091ea",contrastDefaultColor:"dark",contrastLightColors:"500 600 700 800 900 A700",contrastStrongLightColors:"500 600 700 800 A700"},cyan:{50:"#e0f7fa",100:"#b2ebf2",200:"#80deea",300:"#4dd0e1",400:"#26c6da",500:"#00bcd4",600:"#00acc1",700:"#0097a7",800:"#00838f",900:"#006064",A100:"#84ffff",A200:"#18ffff",A400:"#00e5ff",A700:"#00b8d4",contrastDefaultColor:"dark",contrastLightColors:"500 600 700 800 900",contrastStrongLightColors:"500 600 700 800"},teal:{50:"#e0f2f1",100:"#b2dfdb",200:"#80cbc4",300:"#4db6ac",400:"#26a69a",500:"#009688",600:"#00897b",700:"#00796b",800:"#00695c",900:"#004d40",A100:"#a7ffeb",A200:"#64ffda",A400:"#1de9b6",A700:"#00bfa5",contrastDefaultColor:"dark",contrastLightColors:"500 600 700 800 900",contrastStrongLightColors:"500 600 700"},green:{50:"#e8f5e9",100:"#c8e6c9",200:"#a5d6a7",300:"#81c784",400:"#66bb6a",500:"#4caf50",600:"#43a047",700:"#388e3c",800:"#2e7d32",900:"#1b5e20",A100:"#b9f6ca",A200:"#69f0ae",A400:"#00e676",A700:"#00c853",contrastDefaultColor:"dark",contrastLightColors:"500 600 700 800 900",contrastStrongLightColors:"500 600 700"},"light-green":{50:"#f1f8e9",100:"#dcedc8",200:"#c5e1a5",300:"#aed581",400:"#9ccc65",500:"#8bc34a",600:"#7cb342",700:"#689f38",800:"#558b2f",900:"#33691e",A100:"#ccff90",A200:"#b2ff59",A400:"#76ff03",A700:"#64dd17",contrastDefaultColor:"dark",contrastLightColors:"800 900",contrastStrongLightColors:"800 900"},lime:{50:"#f9fbe7",100:"#f0f4c3",200:"#e6ee9c",300:"#dce775",400:"#d4e157",500:"#cddc39",600:"#c0ca33",700:"#afb42b",800:"#9e9d24",900:"#827717",A100:"#f4ff81",A200:"#eeff41",A400:"#c6ff00",A700:"#aeea00",contrastDefaultColor:"dark",contrastLightColors:"900",contrastStrongLightColors:"900"},yellow:{50:"#fffde7",100:"#fff9c4",200:"#fff59d",300:"#fff176",400:"#ffee58",500:"#ffeb3b",600:"#fdd835",700:"#fbc02d",800:"#f9a825",900:"#f57f17",A100:"#ffff8d",A200:"#ffff00",A400:"#ffea00",A700:"#ffd600",contrastDefaultColor:"dark"},amber:{50:"#fff8e1",100:"#ffecb3",200:"#ffe082",300:"#ffd54f",400:"#ffca28",500:"#ffc107",600:"#ffb300",700:"#ffa000",800:"#ff8f00",900:"#ff6f00",A100:"#ffe57f",A200:"#ffd740",A400:"#ffc400",A700:"#ffab00",contrastDefaultColor:"dark"},orange:{50:"#fff3e0",100:"#ffe0b2",200:"#ffcc80",300:"#ffb74d",400:"#ffa726",500:"#ff9800",600:"#fb8c00",700:"#f57c00",800:"#ef6c00",900:"#e65100",A100:"#ffd180",A200:"#ffab40",A400:"#ff9100",A700:"#ff6d00",contrastDefaultColor:"dark",contrastLightColors:"800 900",contrastStrongLightColors:"800 900"},"deep-orange":{50:"#fbe9e7",100:"#ffccbc",200:"#ffab91",300:"#ff8a65",400:"#ff7043",500:"#ff5722",600:"#f4511e",700:"#e64a19",800:"#d84315",900:"#bf360c",A100:"#ff9e80",A200:"#ff6e40",A400:"#ff3d00",A700:"#dd2c00",contrastDefaultColor:"light",contrastDarkColors:"50 100 200 300 400 A100 A200",contrastStrongLightColors:"500 600 700 800 900 A400 A700"},brown:{50:"#efebe9",100:"#d7ccc8",200:"#bcaaa4",300:"#a1887f",400:"#8d6e63",500:"#795548",600:"#6d4c41",700:"#5d4037",800:"#4e342e",900:"#3e2723",A100:"#d7ccc8",A200:"#bcaaa4",A400:"#8d6e63",A700:"#5d4037",contrastDefaultColor:"light",contrastDarkColors:"50 100 200",contrastStrongLightColors:"300 400"},grey:{50:"#fafafa",100:"#f5f5f5",200:"#eeeeee",300:"#e0e0e0",400:"#bdbdbd",500:"#9e9e9e",600:"#757575",700:"#616161",800:"#424242",900:"#212121",1000:"#000000",A100:"#ffffff",A200:"#eeeeee",A400:"#bdbdbd",A700:"#616161",contrastDefaultColor:"dark",contrastLightColors:"600 700 800 900"},"blue-grey":{50:"#eceff1",100:"#cfd8dc",200:"#b0bec5",300:"#90a4ae",400:"#78909c",500:"#607d8b",600:"#546e7a",700:"#455a64",800:"#37474f",900:"#263238",A100:"#cfd8dc",A200:"#b0bec5",A400:"#78909c",A700:"#455a64",contrastDefaultColor:"light",contrastDarkColors:"50 100 200 300",contrastStrongLightColors:"400 500"}})}(),function(){function e(e){function o(e,t){return t=t||{},m[e]=a(e,t),g}function r(e,n){return a(e,t.extend({},m[e]||{},n))}function a(e,t){var n=C.filter(function(e){return!t[e]});if(n.length)throw new Error("Missing colors %1 in palette %2!".replace("%1",n.join(", ")).replace("%2",e));return t}function d(e,n){if(s[e])return s[e];n=n||"default";var o="string"==typeof n?s[n]:n,r=new c(e);return o&&t.forEach(o.colors,function(e,n){r.colors[n]={name:e.name,hues:t.extend({},e.hues)}}),s[e]=r,r}function c(e){function n(e){if(e=0===arguments.length?!0:!!e,e!==o.isDark){o.isDark=e,o.foregroundPalette=o.isDark?f:p,o.foregroundShadow=o.isDark?h:b;var n=o.isDark?T:A,r=o.isDark?A:T;return t.forEach(n,function(e,t){var n=o.colors[t],i=r[t];if(n)for(var a in n.hues)n.hues[a]===i[a]&&(n.hues[a]=e[a])}),o}}var o=this;o.name=e,o.colors={},o.dark=n,n(!1),M.forEach(function(e){var n=(o.isDark?T:A)[e];o[e+"Palette"]=function(r,i){var a=o.colors[e]={name:r,hues:t.extend({},n,i)};return Object.keys(a.hues).forEach(function(e){if(!n[e])throw new Error("Invalid hue name '%1' in theme %2's %3 color %4. Available hue names: %4".replace("%1",e).replace("%2",o.name).replace("%3",r).replace("%4",Object.keys(n).join(", ")))}),Object.keys(a.hues).map(function(e){return a.hues[e]}).forEach(function(t){if(-1==C.indexOf(t))throw new Error("Invalid hue value '%1' in theme %2's %3 color %4. Available hue values: %5".replace("%1",t).replace("%2",o.name).replace("%3",e).replace("%4",r).replace("%5",C.join(", ")))}),o},o[e+"Color"]=function(){var t=Array.prototype.slice.call(arguments);return console.warn("$mdThemingProviderTheme."+e+"Color() has been deprecated. Use $mdThemingProviderTheme."+e+"Palette() instead."),o[e+"Palette"].apply(o,t)}})}function u(e,o){function r(e){return e===n||""===e?!0:i.THEMES[e]!==n}function i(t,o){o===n&&(o=t,t=n),t===n&&(t=e),i.inherit(o,o)}return i.inherit=function(n,i){function a(e){r(e)||o.warn("Attempted to use unregistered theme '"+e+"'. Register it with $mdThemingProvider.theme().");var t=n.data("$mdThemeName");t&&n.removeClass("md-"+t+"-theme"),n.addClass("md-"+e+"-theme"),n.data("$mdThemeName",e),d&&n.data("$mdThemeController",d)}var d=i.controller("mdTheme"),c=n.attr("md-theme-watch");if((v||t.isDefined(c))&&"false"!=c){var l=e.$watch(function(){return d&&d.$mdTheme||E},a);n.on("$destroy",l)}else{var m=d&&d.$mdTheme||E;a(m)}},i.THEMES=t.extend({},s),i.defaultTheme=function(){return E},i.registered=r,i}m={},s={};var g,E="default",v=!1;return t.extend(m,e),u.$inject=["$rootScope","$log"],g={definePalette:o,extendPalette:r,theme:d,setDefaultTheme:function(e){E=e},alwaysWatchTheme:function(e){v=e},$get:u,_LIGHT_DEFAULT_HUES:A,_DARK_DEFAULT_HUES:T,_PALETTES:m,_THEMES:s,_parseRules:i,_rgba:l}}function o(e,t,n){return{priority:100,link:{pre:function(o,r,i){var a={$setTheme:function(t){e.registered(t)||n.warn("attempted to use unregistered theme '"+t+"'"),a.$mdTheme=t}};r.data("$mdThemeController",a),a.$setTheme(t(i.mdTheme)(o)),i.$observe("mdTheme",a.$setTheme)}}}}function r(e){return e}function i(e,n,o){d(e,n),o=o.replace(/THEME_NAME/g,e.name);var r=[],i=e.colors[n],a=new RegExp(".md-"+e.name+"-theme","g"),c=new RegExp("('|\")?{{\\s*("+n+")-(color|contrast)-?(\\d\\.?\\d*)?\\s*}}(\"|')?","g"),s=/'?"?\{\{\s*([a-zA-Z]+)-(A?\d+|hue\-[0-3]|shadow)-?(\d\.?\d*)?\s*\}\}'?"?/g,u=m[i.name];return o=o.replace(s,function(t,n,o,r){return"foreground"===n?"shadow"==o?e.foregroundShadow:e.foregroundPalette[o]||e.foregroundPalette[1]:(0===o.indexOf("hue")&&(o=e.colors[n].hues[o]),l((m[e.colors[n].name][o]||"").value,r))}),t.forEach(i.hues,function(t,n){var i=o.replace(c,function(e,n,o,r,i){return l(u[t]["color"===r?"value":"contrast"],i)});"default"!==n&&(i=i.replace(a,".md-"+e.name+"-theme.md-"+n)),"default"==e.name&&(i=i.replace(/\.md-default-theme/g,"")),r.push(i)}),r}function a(e){function n(e){var n=e.contrastDefaultColor,o=e.contrastLightColors||[],r=e.contrastStrongLightColors||[],i=e.contrastDarkColors||[];"string"==typeof o&&(o=o.split(" ")),"string"==typeof r&&(r=r.split(" ")),"string"==typeof i&&(i=i.split(" ")),delete e.contrastDefaultColor,delete e.contrastLightColors,delete e.contrastStrongLightColors,delete e.contrastDarkColors,t.forEach(e,function(a,d){function l(){return"light"===n?i.indexOf(d)>-1?g:r.indexOf(d)>-1?v:E:o.indexOf(d)>-1?r.indexOf(d)>-1?v:E:g}if(!t.isObject(a)){var m=c(a);if(!m)throw new Error("Color %1, in palette %2's hue %3, is invalid. Hex or rgb(a) color expected.".replace("%1",a).replace("%2",e.name).replace("%3",d));e[d]={value:m,contrast:l()}}})}var o=document.getElementsByTagName("head")[0],r=o?o.firstElementChild:null,a=e.has("$MD_THEME_CSS")?e.get("$MD_THEME_CSS"):"";if(r&&0!==a.length){t.forEach(m,n);var d={},l=a.split(/\}(?!(\}|'|"|;))/).filter(function(e){return e&&e.length}).map(function(e){return e.trim()+"}"}),p=new RegExp("md-("+M.join("|")+")","g");M.forEach(function(e){d[e]=""}),l.forEach(function(e){for(var t,n=(e.match(p),0);t=M[n];n++)if(e.indexOf(".md-"+t)>-1)return d[t]+=e;for(n=0;t=M[n];n++)if(e.indexOf(t)>-1)return d[t]+=e;return d[$]+=e}),t.forEach(s,function(e){u[e.name]||(M.forEach(function(t){for(var n=i(e,t,d[t]);n.length;){var a=document.createElement("style");a.setAttribute("type","text/css"),a.appendChild(document.createTextNode(n.shift())),o.insertBefore(a,r)}}),e.colors.primary.name==e.colors.accent.name&&console.warn("$mdThemingProvider: Using the same palette for primary and accent. This violates the material design spec."),u[e.name]=!0)})}}function d(e,t){if(!m[(e.colors[t]||{}).name])throw new Error("You supplied an invalid color palette for theme %1's %2 palette. Available palettes: %3".replace("%1",e.name).replace("%2",t).replace("%3",Object.keys(m).join(", ")))}function c(e){if(t.isArray(e)&&3==e.length)return e;if(/^rgb/.test(e))return e.replace(/(^\s*rgba?\(|\)\s*$)/g,"").split(",").map(function(e,t){return 3==t?parseFloat(e,10):parseInt(e,10)});if("#"==e.charAt(0)&&(e=e.substring(1)),/^([a-fA-F0-9]{3}){1,2}$/g.test(e)){var n=e.length/3,o=e.substr(0,n),r=e.substr(n,n),i=e.substr(2*n);return 1===n&&(o+=o,r+=r,i+=i),[parseInt(o,16),parseInt(r,16),parseInt(i,16)]}}function l(e,n){return e?(4==e.length&&(e=t.copy(e),n?e.pop():n=e.pop()),n&&("number"==typeof n||"string"==typeof n&&n.length)?"rgba("+e.join(",")+","+n+")":"rgb("+e.join(",")+")"):"rgb('0,0,0')"}t.module("material.core.theming",["material.core.theming.palette"]).directive("mdTheme",o).directive("mdThemable",r).provider("$mdTheming",e).run(a);var m,s,u={},p={name:"dark",1:"rgba(0,0,0,0.87)",2:"rgba(0,0,0,0.54)",3:"rgba(0,0,0,0.26)",4:"rgba(0,0,0,0.12)"},f={name:"light",1:"rgba(255,255,255,1.0)",2:"rgba(255,255,255,0.7)",3:"rgba(255,255,255,0.3)",4:"rgba(255,255,255,0.12)"},h="1px 1px 0px rgba(0,0,0,0.4), -1px -1px 0px rgba(0,0,0,0.4)",b="",g=c("rgba(0,0,0,0.87)"),E=c("rgba(255,255,255,0.87"),v=c("rgb(255,255,255)"),M=["primary","accent","warn","background"],$="primary",A={accent:{"default":"A200","hue-1":"A100","hue-2":"A400","hue-3":"A700"},background:{"default":"A100","hue-1":"300","hue-2":"800","hue-3":"900"}},T={background:{"default":"800","hue-1":"300","hue-2":"600","hue-3":"900"}};M.forEach(function(e){var t={"default":"500","hue-1":"300","hue-2":"800","hue-3":"A100"};A[e]||(A[e]=t),T[e]||(T[e]=t)});var C=["50","100","200","300","400","500","600","700","800","900","A100","A200","A400","A700"];e.$inject=["$mdColorPalette"],o.$inject=["$mdTheming","$interpolate","$log"],r.$inject=["$mdTheming"],a.$inject=["$injector"]}(),function(){t.module("material.components.autocomplete",["material.core","material.components.icon"])}(),function(){function e(){return{restrict:"E"}}function n(e){function n(e,n,i,a,d,c,l){function m(o,r,l){r=i.extractElementByName(r,"md-bottom-sheet"),p=i.createBackdrop(o,"md-bottom-sheet-backdrop md-opaque"),p.on("click",function(){i.nextTick(d.cancel,!0)}),a.inherit(p,l.parent),e.enter(p,l.parent,null);var m=new u(r,l.parent);return l.bottomSheet=m,l.targetEvent&&t.element(l.targetEvent.target).blur(),a.inherit(m.element,l.parent),l.disableParentScroll&&(l.lastOverflow=l.parent.css("overflow"),l.parent.css("overflow","hidden")),e.enter(m.element,l.parent).then(function(){var e=t.element(r[0].querySelector("button")||r[0].querySelector("a")||r[0].querySelector("[ng-click]"));e.focus(),l.escapeToClose&&(l.rootElementKeyupCallback=function(e){e.keyCode===n.KEY_CODE.ESCAPE&&i.nextTick(d.cancel,!0)},c.on("keyup",l.rootElementKeyupCallback))})}function s(n,o,r){var i=r.bottomSheet;return e.leave(p),e.leave(i.element).then(function(){r.disableParentScroll&&(r.parent.css("overflow",r.lastOverflow),delete r.lastOverflow),i.cleanup(),r.targetEvent&&t.element(r.targetEvent.target).focus()})}function u(e,t){function a(t){e.css(n.CSS.TRANSITION_DURATION,"0ms")}function c(t){var o=t.pointer.distanceY;5>o&&(o=Math.max(-r,o/2)),e.css(n.CSS.TRANSFORM,"translate3d(0,"+(r+o)+"px,0)")}function m(t){if(t.pointer.distanceY>0&&(t.pointer.distanceY>20||Math.abs(t.pointer.velocityY)>o)){var r=e.prop("offsetHeight")-t.pointer.distanceY,a=Math.min(r/t.pointer.velocityY*.75,500);e.css(n.CSS.TRANSITION_DURATION,a+"ms"),i.nextTick(d.cancel,!0)}else e.css(n.CSS.TRANSITION_DURATION,""),e.css(n.CSS.TRANSFORM,"")}var s=l.register(t,"drag",{horizontal:!1});return t.on("$md.dragstart",a).on("$md.drag",c).on("$md.dragend",m),{element:e,cleanup:function(){s(),t.off("$md.dragstart",a).off("$md.drag",c).off("$md.dragend",m)}}}var p;return{themable:!0,targetEvent:null,onShow:m,onRemove:s,escapeToClose:!0,disableParentScroll:!0}}var o=.5,r=80;return n.$inject=["$animate","$mdConstant","$mdUtil","$mdTheming","$mdBottomSheet","$rootElement","$mdGesture"],e("$mdBottomSheet").setDefaults({methods:["disableParentScroll","escapeToClose","targetEvent"],options:n})}t.module("material.components.bottomSheet",["material.core","material.components.backdrop"]).directive("mdBottomSheet",e).provider("$mdBottomSheet",n),n.$inject=["$$interimElementProvider"]}(),function(){t.module("material.components.backdrop",["material.core"]).directive("mdBackdrop",["$mdTheming","$animate","$rootElement","$window","$log","$$rAF","$document",function(e,t,n,o,r,i,a){function d(d,l,m){var s=o.getComputedStyle(a[0].body);if("fixed"==s.position){var u=parseInt(s.height,10)+Math.abs(parseInt(s.top,10));l.css({height:u+"px"})}t.pin&&t.pin(l,n),i(function(){var t=l.parent()[0];if(t){var n=o.getComputedStyle(t);"static"==n.position&&r.warn(c)}e.inherit(l,l.parent())})}var c=" may not work properly in a scrolled, static-positioned parent container.";return{restrict:"E",link:d}}])}(),function(){function e(e){return{restrict:"E",link:function(t,n,o){e(n)}}}t.module("material.components.card",["material.core"]).directive("mdCard",e),e.$inject=["$mdTheming"]}(),function(){function e(e,n,o,r,i,a,d){function c(n,c){return c.type="checkbox",c.tabindex=c.tabindex||"0",n.attr("role",c.type),function(n,c,m,s){function u(e,t,o){m[e]&&n.$watch(m[e],function(e){o[e]&&c.attr(t,o[e])})}function p(e){var t=e.which||e.keyCode;(t===r.KEY_CODE.SPACE||t===r.KEY_CODE.ENTER)&&(e.preventDefault(),c.hasClass("md-focused")||c.addClass("md-focused"),f(e))}function f(e){c[0].hasAttribute("disabled")||n.$apply(function(){var t=m.ngChecked?m.checked:!s.$viewValue;s.$setViewValue(t,e&&e.type),s.$render()})}function h(){s.$viewValue?c.addClass(l):c.removeClass(l)}s=s||a.fakeNgModel(),i(c),m.ngChecked&&n.$watch(n.$eval.bind(n,m.ngChecked),s.$setViewValue.bind(s)),u("ngDisabled","tabindex",{"true":"-1","false":m.tabindex}),o.expectWithText(c,"aria-label"),e.link.pre(n,{on:t.noop,0:{}},m,[s]),n.mouseActive=!1,c.on("click",f).on("keypress",p).on("mousedown",function(){n.mouseActive=!0,d(function(){n.mouseActive=!1},100)}).on("focus",function(){n.mouseActive===!1&&c.addClass("md-focused")}).on("blur",function(){c.removeClass("md-focused")}),s.$render=h}}e=e[0];var l="md-checked";return{restrict:"E",transclude:!0,require:"?ngModel",priority:210,template:'
',compile:c}}t.module("material.components.checkbox",["material.core"]).directive("mdCheckbox",e),e.$inject=["inputDirective","$mdInkRipple","$mdAria","$mdConstant","$mdTheming","$mdUtil","$timeout"]}(),function(){function e(e){function t(e,t){this.$scope=e,this.$element=t}return{restrict:"E",controller:["$scope","$element",t],link:function(t,o,r){o[0];e(o),t.$broadcast("$mdContentLoaded",o),n(o[0])}}}function n(e){t.element(e).on("$md.pressdown",function(t){"t"===t.pointer.type&&(t.$materialScrollFixed||(t.$materialScrollFixed=!0,0===e.scrollTop?e.scrollTop=1:e.scrollHeight===e.scrollTop+e.offsetHeight&&(e.scrollTop-=1)))})}t.module("material.components.content",["material.core"]).directive("mdContent",e),e.$inject=["$mdTheming"]}(),function(){function e(e,n,o,r){function i(e){return t.isDefined(e.href)||t.isDefined(e.ngHref)||t.isDefined(e.ngLink)||t.isDefined(e.uiSref)}function a(e,t){return i(t)?'':''}function d(a,d,c){var l=d[0];n(d),e.attach(a,d);var m=l.textContent.trim();m||o.expect(d,"aria-label"),i(c)&&t.isDefined(c.ngDisabled)&&a.$watch(c.ngDisabled,function(e){d.attr("tabindex",e?-1:0)}),d.on("click",function(e){c.disabled===!0&&(e.preventDefault(),e.stopImmediatePropagation())}),a.mouseActive=!1,d.on("mousedown",function(){a.mouseActive=!0,r(function(){a.mouseActive=!1},100)}).on("focus",function(){a.mouseActive===!1&&d.addClass("md-focused")}).on("blur",function(){d.removeClass("md-focused")})}return{restrict:"EA",replace:!0,transclude:!0,template:a,link:d}}t.module("material.components.button",["material.core"]).directive("mdButton",e),e.$inject=["$mdButtonInkRipple","$mdTheming","$mdAria","$timeout"]}(),function(){function e(e){return{restrict:"E",link:e}}t.module("material.components.divider",["material.core"]).directive("mdDivider",e),e.$inject=["$mdTheming"]}(),function(){t.module("material.components.chips",["material.core","material.components.autocomplete"])}(),function(){function e(e,n){return{restrict:"E",link:function(o,r,i){n(r),e(function(){function e(){r.toggleClass("md-content-overflow",o.scrollHeight>o.clientHeight)}var n,o=r[0].querySelector("md-dialog-content");o&&(n=o.getElementsByTagName("img"),e(),t.element(n).on("load",e))})}}}function n(e){function n(e,t){return{template:['',' ','

{{ dialog.title }}

',"

{{ dialog.content }}

","
",'
',' '," {{ dialog.cancel }}"," ",' '," {{ dialog.ok }}"," ","
","
"].join("").replace(/\s\s+/g,""),controller:function(){this.hide=function(){e.hide(!0)},this.abort=function(){e.cancel()}},controllerAs:"dialog",bindToController:!0,theme:t.defaultTheme()}}function o(e,n,o,r,i,a,d,c){function l(e,n,r){function i(){function e(){var e=n[0].querySelector(".dialog-close");if(!e){var o=n[0].querySelectorAll(".md-actions button");e=o[o.length-1]}return t.element(e)}if(r.focusOnOpen){var o="alert"===r.$type?n.find("md-dialog-content"):e();o.focus()}}return n=o.extractElementByName(n,"md-dialog"),t.element(a[0].body).addClass("md-dialog-is-showing"),s(n,r),f(n.find("md-dialog"),r),p(e,n,r),g(n,r).then(function(){u(n,r),h(n,r),i()})}function m(e,n,o){return o.deactivateListeners(),o.unlockScreenReader(),o.hideBackdrop(),E(n,o)["finally"](function(){t.element(a[0].body).removeClass("md-dialog-is-showing"),n.remove(),o.origin.focus()})}function s(e,n){var r={element:null,bounds:null,focus:t.noop};n.origin=t.extend({},r,n.origin||{});var i=t.element((n.targetEvent||{}).target);i&&i.length&&(n.origin.element=i,n.origin.bounds=i[0].getBoundingClientRect(),n.origin.focus=function(){i.focus()}),n.parent=t.element(n.parent||c),n.disableParentScroll&&(n.restoreScroll=o.disableScrollAround(e,n.parent))}function u(t,n){var i=[],a=function(){var t="alert"==n.$type?e.hide:e.cancel;o.nextTick(t,!0)};if(n.escapeToClose){var d=n.parent,c=function(e){e.keyCode===r.KEY_CODE.ESCAPE&&(e.stopPropagation(),e.preventDefault(),a())};t.on("keyup",c),d.on("keyup",c),i.push(function(){t.off("keyup",c),d.off("keyup",c)})}if(n.clickOutsideToClose){var d=t,l=function(e){e.target===d[0]&&(e.stopPropagation(),e.preventDefault(),a())};d.on("click",l),i.push(function(){d.off("click",l)})}n.deactivateListeners=function(){i.forEach(function(e){e()}),n.deactivateListeners=null}}function p(e,t,n){n.hasBackdrop&&(n.backdrop=o.createBackdrop(e,"md-dialog-backdrop md-opaque"),i.enter(n.backdrop,n.parent)),n.hideBackdrop=function(){n.backdrop&&i.leave(n.backdrop),n.disableParentScroll&&n.restoreScroll(),n.hideBackdrop=null}}function f(e,t){var r="alert"===t.$type?"alertdialog":"dialog",i=e.find("md-dialog-content"),a=e.attr("id")||"dialog_"+o.nextUid();e.attr({role:r,tabIndex:"-1"}),0===i.length&&(i=e),i.attr("id",a),e.attr("aria-describedby",a),t.ariaLabel?n.expect(e,"aria-label",t.ariaLabel):n.expectAsync(e,"aria-label",function(){var e=i.text().split(/\s+/);return e.length>3&&(e=e.slice(0,3).concat("...")),e.join(" ")})}function h(e,t){function n(e){for(;e.parentNode;){if(e===document.body)return;for(var t=e.parentNode.children,r=0;r'+e+"
"}}}return n.$inject=["$mdDialog","$mdTheming"],o.$inject=["$mdDialog","$mdAria","$mdUtil","$mdConstant","$animate","$document","$window","$rootElement"],e("$mdDialog").setDefaults({methods:["disableParentScroll","hasBackdrop","clickOutsideToClose","escapeToClose","targetEvent","parent"],options:o}).addPreset("alert",{methods:["title","content","ariaLabel","ok","theme"],options:n}).addPreset("confirm",{methods:["title","content","ariaLabel","ok","cancel","theme"],options:n})}t.module("material.components.dialog",["material.core","material.components.backdrop"]).directive("mdDialog",e).provider("$mdDialog",n),e.$inject=["$$rAF","$mdTheming"],n.$inject=["$$interimElementProvider"]}(),function(){!function(){function e(){function e(e,t){t.prepend('
')}function t(e,t,n,o){function r(){d.direction=d.direction||"down",d.isOpen=d.isOpen||!1}function i(){t.on("mouseenter",d.mouseenter),t.on("mouseleave",d.mouseleave)}function a(){e.$watch("vm.direction",function(e,o){n.removeClass(t,"md-"+o),n.addClass(t,"md-"+e)}),e.$watch("vm.isOpen",function(e){var o=e?"md-is-open":"",r=e?"":"md-is-open";n.setClass(t,o,r)})}var d=this;d.open=function(){e.$evalAsync("vm.isOpen = true")},d.close=function(){!d.moused&&e.$evalAsync("vm.isOpen = false")},d.mouseenter=function(){d.moused=!0,d.open()},d.mouseleave=function(){d.moused=!1,d.close()},r(),i(),a(),o.nextTick(function(){n.addClass(t,"md-noop")})}return t.$inject=["$scope","$element","$animate","$mdUtil"],{restrict:"E",scope:{direction:"@?mdDirection",isOpen:"=?mdOpen"},bindToController:!0,controller:t,controllerAs:"vm",link:e}}function n(){function e(e){var n=e[0],o=e.controller("mdFabSpeedDial"),r=n.querySelectorAll(".md-fab-action-item"),i=n.querySelector(".md-css-variables"),a=i.style.zIndex;t.forEach(r,function(e,t){var n=e.style;n.transform=n.webkitTransform="",n.transitionDelay="",n.opacity=1,n.zIndex=r.length-t+a}),o.isOpen||t.forEach(r,function(e,t){var n,r,i=e.style;switch(o.direction){case"up":n=e.scrollHeight*(t+1),r="Y";break;case"down":n=-e.scrollHeight*(t+1),r="Y";break;case"left":n=e.scrollWidth*(t+1),r="X";break;case"right":n=-e.scrollWidth*(t+1),r="X"}var a="translate"+r+"("+n+"px)";i.transform=i.webkitTransform=a})}return{addClass:function(t,n,o){t.hasClass("md-fling")&&(e(t),o())},removeClass:function(t,n,o){e(t),o()}}}function o(){function e(e){var o=e[0],r=e.controller("mdFabSpeedDial"),i=o.querySelectorAll(".md-fab-action-item");t.forEach(i,function(e,t){var o=e.style,a=t*n;o.opacity=r.isOpen?1:0,o.transform=o.webkitTransform=r.isOpen?"scale(1)":"scale(0)",o.transitionDelay=(r.isOpen?a:i.length-a)+"ms"})}var n=65;return{addClass:function(t,n,o){e(t),o()},removeClass:function(t,n,o){e(t),o()}}}t.module("material.components.fabSpeedDial",["material.core","material.components.fabTrigger","material.components.fabActions"]).directive("mdFabSpeedDial",e).animation(".md-fling",n).animation(".md-scale",o).service("mdFabSpeedDialFlingAnimation",n).service("mdFabSpeedDialScaleAnimation",o)}()}(),function(){!function(){function e(){return{restrict:"E",require:["^?mdFabSpeedDial","^?mdFabToolbar"],compile:function(e,n){var o=e.children();return o.attr("ng-repeat")?o.addClass("md-fab-action-item"):o.wrap('
'),function(e,n,o,r){var i=r[0]||r[1];i&&t.forEach(n.children(),function(e){e=t.element(e).children()[0],t.element(e).on("focus",i.open),t.element(e).on("blur",i.close)})}}}}t.module("material.components.fabActions",["material.core"]).directive("mdFabActions",e)}()}(),function(){!function(){function n(){function e(e,t,n){var o=this;o.isOpen=o.isOpen||!1,o.open=function(){o.isOpen=!0,e.$apply()},o.close=function(){o.isOpen=!1,e.$apply()},t.addClass("md-fab-toolbar"),t.on("mouseenter",o.open),t.on("mouseleave",o.close),e.$watch("vm.isOpen",function(e){var o=e?"md-is-open":"",r=e?"":"md-is-open";n.setClass(t,o,r)})}function t(e,t,n){t.find("md-fab-trigger").find("button").attr("tabindex","-1"),t.find("md-fab-trigger").find("button").prepend('
')}return e.$inject=["$scope","$element","$animate"],{restrict:"E",transclude:!0,template:'
',scope:{isOpen:"=?mdOpen"},bindToController:!0,controller:e,controllerAs:"vm",link:t}}function o(){function n(n,o,r){var i=n[0],a=n.controller("mdFabToolbar"),d=i.querySelector(".md-fab-toolbar-background"),c=i.querySelector("md-fab-trigger button"),l=i.querySelector("md-fab-trigger button md-icon"),m=n.find("md-fab-actions").children();if(c&&d){var s=e.getComputedStyle(c).getPropertyValue("background-color"),u=i.offsetWidth,p=(i.offsetHeight,2*u);d.style.backgroundColor=s,d.style.borderRadius=u+"px",a.isOpen?(d.style.width=p+"px",d.style.height=p+"px",d.style.top=-(p/2)+"px",n.hasClass("md-left")&&(d.style.left=-(p/2)+"px",d.style.right=null),n.hasClass("md-right")&&(d.style.right=-(p/2)+"px",d.style.left=null),d.style.transitionDelay="0ms",l&&(l.style.transitionDelay=".3s"),t.forEach(m,function(e,t){e.style.transitionDelay=25*(m.length-t)+"ms"})):(d.style.width=c.offsetWidth+"px",d.style.height=c.offsetHeight+"px",d.style.top="0px",n.hasClass("md-left")&&(d.style.left="0px",d.style.right=null),n.hasClass("md-right")&&(d.style.right="0px",d.style.left=null),d.style.transitionDelay="200ms",l&&(l.style.transitionDelay="0ms"),t.forEach(m,function(e,t){e.style.transitionDelay=25*t+"ms"}))}}return{addClass:function(e,t,o){n(e,t,o),o()},removeClass:function(e,t,o){n(e,t,o),o()}}}t.module("material.components.fabToolbar",["material.core","material.components.fabTrigger","material.components.fabActions"]).directive("mdFabToolbar",n).animation(".md-fab-toolbar",o).service("mdFabToolbarAnimation",o)}()}(),function(){!function(){function e(){return{restrict:"E",require:["^?mdFabSpeedDial","^?mdFabToolbar"],link:function(e,n,o,r){var i=r[0]||r[1];i&&t.forEach(n.children(),function(e){t.element(e).on("focus",i.open),t.element(e).on("blur",i.close)})}}}t.module("material.components.fabTrigger",["material.core"]).directive("mdFabTrigger",e)}()}(),function(){function e(e,o,r,i){function a(n,a,d,c){function l(){for(var e in o.MEDIA)i(e),i.getQuery(o.MEDIA[e]).addListener(T);return i.watchResponsiveAttributes(["md-cols","md-row-height"],d,s)}function m(){c.layoutDelegate=t.noop,C();for(var e in o.MEDIA)i.getQuery(o.MEDIA[e]).removeListener(T)}function s(e){null==e?c.invalidateLayout():i(e)&&c.invalidateLayout()}function u(e){var o=b(),i={tileSpans:g(o),colCount:E(),rowMode:$(),rowHeight:M(),gutter:v()};if(e||!t.equals(i,y)){var d=r(i.colCount,i.tileSpans,o).map(function(e,n){return{grid:{element:a,style:h(i.colCount,n,i.gutter,i.rowMode,i.rowHeight)},tiles:e.map(function(e,n){return{element:t.element(o[n]),style:f(e.position,e.spans,i.colCount,i.rowCount,i.gutter,i.rowMode,i.rowHeight)}})}}).reflow().performance();n.mdOnLayout({$event:{performance:d}}),y=i}}function p(e){return w+e+k}function f(e,t,n,o,r,i,a){var d=1/n*100,c=(n-1)/n,l=x({share:d,gutterShare:c,gutter:r}),m={left:N({unit:l,offset:e.col,gutter:r}),width:_({unit:l,span:t.col,gutter:r}),paddingTop:"",marginTop:"",top:"",height:""};switch(i){case"fixed":m.top=N({unit:a,offset:e.row,gutter:r}),m.height=_({unit:a,span:t.row,gutter:r});break;case"ratio":var s=d/a,u=x({share:s,gutterShare:c,gutter:r});m.paddingTop=_({unit:u,span:t.row,gutter:r}),m.marginTop=N({unit:u,offset:e.row,gutter:r});break;case"fit":var p=(o-1)/o,s=1/o*100,u=x({share:s,gutterShare:p,gutter:r});m.top=N({unit:u,offset:e.row,gutter:r}),m.height=_({unit:u,span:t.row,gutter:r})}return m}function h(e,t,n,o,r){var i={height:"",paddingBottom:""};switch(o){case"fixed":i.height=_({unit:r,span:t,gutter:n});break;case"ratio":var a=1===e?0:(e-1)/e,d=1/e*100,c=d*(1/r),l=x({share:c,gutterShare:a,gutter:n});i.paddingBottom=_({unit:l,span:t,gutter:n});break;case"fit":}return i}function b(){return[].filter.call(a.children(),function(e){return"MD-GRID-TILE"==e.tagName})}function g(e){return[].map.call(e,function(e){var n=t.element(e).controller("mdGridTile");return{row:parseInt(i.getResponsiveAttribute(n.$attrs,"md-rowspan"),10)||1,col:parseInt(i.getResponsiveAttribute(n.$attrs,"md-colspan"),10)||1}})}function E(){var e=parseInt(i.getResponsiveAttribute(d,"md-cols"),10);if(isNaN(e))throw"md-grid-list: md-cols attribute was not found, or contained a non-numeric value";return e}function v(){return A(i.getResponsiveAttribute(d,"md-gutter")||1)}function M(){var e=i.getResponsiveAttribute(d,"md-row-height");switch($()){case"fixed":return A(e);case"ratio":var t=e.split(":");return parseFloat(t[0])/parseFloat(t[1]);case"fit":return 0}}function $(){var e=i.getResponsiveAttribute(d,"md-row-height");return"fit"==e?"fit":-1!==e.indexOf(":")?"ratio":"fixed"}function A(e){return/\D$/.test(e)?e:e+"px"}a.attr("role","list"),c.layoutDelegate=u;var T=t.bind(c,c.invalidateLayout),C=l();n.$on("$destroy",m);var y,w=e.startSymbol(),k=e.endSymbol(),x=e(p("share")+"% - ("+p("gutter")+" * "+p("gutterShare")+")"),N=e("calc(("+p("unit")+" + "+p("gutter")+") * "+p("offset")+")"),_=e("calc(("+p("unit")+") * "+p("span")+" + ("+p("span")+" - 1) * "+p("gutter")+")")}return{restrict:"E",controller:n, scope:{mdOnLayout:"&"},link:a}}function n(e){this.layoutInvalidated=!1,this.tilesInvalidated=!1,this.$timeout_=e.nextTick,this.layoutDelegate=t.noop}function o(e){function n(t,n){var o,a,d,c,l,m;return c=e.time(function(){a=r(t,n)}),o={layoutInfo:function(){return a},map:function(t){return l=e.time(function(){var e=o.layoutInfo();d=t(e.positioning,e.rowCount)}),o},reflow:function(t){return m=e.time(function(){var e=t||i;e(d.grid,d.tiles)}),o},performance:function(){return{tileCount:n.length,layoutTime:c,mapTime:l,reflowTime:m,totalTime:c+l+m}}}}function o(e,t){e.element.css(e.style),t.forEach(function(e){e.element.css(e.style)})}function r(e,t){function n(t,n){if(t.col>e)throw"md-grid-list: Tile at position "+n+" has a colspan ("+t.col+") that exceeds the column count ("+e+")";for(var a=0,m=0;m-a=e?o():(a=l.indexOf(0,d),-1!==a&&-1!==(m=i(a+1))?d=m+1:(a=m=0,o()));return r(a,t.col,t.row),d=a+t.col,{col:a,row:c}}function o(){d=0,c++,r(0,e,-1)}function r(e,t,n){for(var o=e;e+t>o;o++)l[o]=Math.max(l[o]+n,0)}function i(e){var t;for(t=e;tn;n++)t.push(0);return t}var d=0,c=0,l=a();return{positioning:t.map(function(e,t){return{spans:e,position:n(e,t)}}),rowCount:c+Math.max.apply(Math,l)}}var i=o;return n.animateWith=function(e){i=t.isFunction(e)?e:o},n}function r(e){function n(n,o,r,i){o.attr("role","listitem");var a=e.watchResponsiveAttributes(["md-colspan","md-rowspan"],r,t.bind(i,i.invalidateLayout));i.invalidateTiles(),n.$on("$destroy",function(){a(),i.invalidateLayout()}),t.isDefined(n.$parent.$index)&&n.$watch(function(){return n.$parent.$index},function(e,t){e!==t&&i.invalidateTiles()})}return{restrict:"E",require:"^mdGridList",template:"
",transclude:!0,scope:{},controller:["$attrs",function(e){this.$attrs=e}],link:n}}function i(){return{template:"
",transclude:!0}}t.module("material.components.gridList",["material.core"]).directive("mdGridList",e).directive("mdGridTile",r).directive("mdGridTileFooter",i).directive("mdGridTileHeader",i).factory("$mdGridLayout",o),e.$inject=["$interpolate","$mdConstant","$mdGridLayout","$mdMedia"],n.$inject=["$mdUtil"],n.prototype={invalidateTiles:function(){this.tilesInvalidated=!0,this.invalidateLayout()},invalidateLayout:function(){this.layoutInvalidated||(this.layoutInvalidated=!0,this.$timeout_(t.bind(this,this.layout)))},layout:function(){try{this.layoutDelegate(this.tilesInvalidated)}finally{this.layoutInvalidated=!1,this.tilesInvalidated=!1}}},o.$inject=["$mdUtil"],r.$inject=["$mdMedia"]}(),function(){function e(e,t,n){function o(o,r,i){function a(){var e=r.parent();return e.attr("aria-label")||e.text()?!0:e.parent().attr("aria-label")||e.parent().text()?!0:!1}function d(){function t(){return!o.fontIcon&&!o.fontSet&&!i.hasOwnProperty("class")}o.svgIcon||o.svgSrc||(o.fontIcon&&r.addClass("md-font "+o.fontIcon),o.fontSet&&r.addClass(e.fontSet(o.fontSet)),t()&&r.addClass(e.fontSet()))}t(r),d();var c=i.alt||o.fontIcon||o.svgIcon||r.text(),l=i.$normalize(i.$attr.mdSvgIcon||i.$attr.mdSvgSrc||"");i["aria-label"]||(""==c||a()?r.text()||n.expect(r,"aria-hidden","true"):(n.expect(r,"aria-label",c),n.expect(r,"role","img"))),l&&i.$observe(l,function(t){r.empty(),t&&e(t).then(function(e){r.append(e)})})}return{scope:{fontSet:"@mdFontSet",fontIcon:"@mdFontIcon",svgIcon:"@mdSvgIcon",svgSrc:"@mdSvgSrc"},restrict:"E",link:o}}t.module("material.components.icon",["material.core"]).directive("mdIcon",e),e.$inject=["$mdIcon","$mdTheming","$mdAria"]}(),function(){function e(){}function n(e,t){this.url=e,this.viewBoxSize=t||r.defaultViewBoxSize}function o(e,n,o,r,i){function a(e){return e=e||"",E[e]?o.when(E[e].clone()):v.test(e)?s(e).then(c(e)):(-1==e.indexOf(":")&&(e="$default:"+e),l(e)["catch"](m)["catch"](u)["catch"](p).then(c(e)))}function d(n){var o=t.isUndefined(n)||!(n&&n.length);if(o)return e.defaultFontSet;var r=n;return t.forEach(e.fontSets,function(e){e.alias==n&&(r=e.fontSet||r)}),r}function c(t){return function(n){return E[t]=f(n)?n:new h(n,e[t]),E[t].clone()}}function l(t){var n=e[t];return n?s(n.url).then(function(e){return new h(e,n)}):o.reject(t)}function m(t){function n(e){var n=t.slice(t.lastIndexOf(":")+1),r=e.querySelector("#"+n);return r?new h(r,i):o.reject(t)}var r=t.substring(0,t.lastIndexOf(":"))||"$default",i=e[r];return i?s(i.url).then(n):o.reject(t)}function s(e){return n.get(e,{cache:i}).then(function(e){return t.element("
").append(e.data).find("svg")[0]})}function u(e){var n;return t.isString(e)&&(n="icon "+e+" not found",r.warn(n)),o.reject(n||e)}function p(e){var n=t.isString(e)?e:e.message||e.data||e.statusText;return r.warn(n),o.reject(n)}function f(e){return t.isDefined(e.element)&&t.isDefined(e.config)}function h(e,n){"svg"!=e.tagName&&(e=t.element('').append(e)[0]),e.getAttribute("xmlns")||e.setAttribute("xmlns","http://www.w3.org/2000/svg"),this.element=e,this.config=n,this.prepare()}function b(){var n=this.config?this.config.viewBoxSize:e.defaultViewBoxSize;t.forEach({fit:"",height:"100%",width:"100%",preserveAspectRatio:"xMidYMid meet",viewBox:this.element.getAttribute("viewBox")||"0 0 "+n+" "+n},function(e,t){this.element.setAttribute(t,e)},this),t.forEach({"pointer-events":"none",display:"block"},function(e,t){this.element.style[t]=e},this)}function g(){return this.element.cloneNode(!0)}var E={},v=/[-a-zA-Z0-9@:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?/i;return h.prototype={clone:g,prepare:b},a.fontSet=d,a}t.module("material.components.icon").provider("$mdIcon",e);var r={defaultViewBoxSize:24,defaultFontSet:"material-icons",fontSets:[]};e.prototype={icon:function(e,t,o){return-1==e.indexOf(":")&&(e="$default:"+e),r[e]=new n(t,o),this},iconSet:function(e,t,o){return r[e]=new n(t,o),this},defaultIconSet:function(e,t){var o="$default";return r[o]||(r[o]=new n(e,t)),r[o].viewBoxSize=t||r.defaultViewBoxSize,this},defaultViewBoxSize:function(e){return r.defaultViewBoxSize=e,this},fontSet:function(e,t){return r.fontSets.push({alias:e,fontSet:t||e}),this},defaultFontSet:function(e){return r.defaultFontSet=e?e:"",this},defaultIconSize:function(e){return r.defaultIconSize=e,this},preloadIcons:function(e){var t=this,n=[{id:"md-tabs-arrow",url:"md-tabs-arrow.svg",svg:''},{id:"md-close",url:"md-close.svg",svg:''},{id:"md-cancel",url:"md-cancel.svg",svg:''},{id:"md-menu",url:"md-menu.svg",svg:''},{id:"md-toggle-arrow",url:"md-toggle-arrow-svg",svg:''}];n.forEach(function(n){t.icon(n.id,n.url),e.put(n.url,n.svg)})},$get:["$http","$q","$log","$templateCache",function(e,t,n,i){return this.preloadIcons(i),o(r,e,t,n,i)}]}}(),function(){function e(e,t){function n(t,n,o){e(n)}function o(e,n,o){var r=this;r.isErrorGetter=o.mdIsError&&t(o.mdIsError),r.delegateClick=function(){r.input.focus()},r.element=n,r.setFocused=function(e){n.toggleClass("md-input-focused",!!e)},r.setHasValue=function(e){n.toggleClass("md-input-has-value",!!e)},r.setInvalid=function(e){n.toggleClass("md-input-invalid",!!e)},e.$watch(function(){return r.label&&r.input},function(e){e&&!r.label.attr("for")&&r.label.attr("for",r.input.attr("id"))})}return o.$inject=["$scope","$element","$attrs"],{restrict:"E",link:n,controller:o}}function n(){return{restrict:"E",require:"^?mdInputContainer",link:function(e,t,n,o){o&&!n.mdNoFloat&&(o.label=t,e.$on("$destroy",function(){o.label=null}))}}}function o(e,n,o){function r(r,i,a,d){function c(e){return s.setHasValue(!u.$isEmpty(e)),e}function l(){s.setHasValue(i.val().length>0||(i[0].validity||{}).badInput)}function m(){function o(e){return h(),e}function a(){if(m.style.height=m.offsetHeight+"px",i.addClass("md-no-flex"),isNaN(p)){l.style.height="auto",l.scrollTop=0;var e=d();e&&(l.style.height=e+"px")}else{l.setAttribute("rows",1),f||(l.style.minHeight="0",f=i.prop("clientHeight"),l.style.minHeight=null);var t=Math.max(p,Math.round(l.scrollHeight/f));l.setAttribute("rows",t)}i.removeClass("md-no-flex"),m.style.height="auto"}function d(){var e=l.scrollHeight-l.offsetHeight;return l.offsetHeight+(e>0?e:0)}function c(e){l.scrollTop=0;var t=l.scrollHeight-l.offsetHeight,n=l.offsetHeight+t;l.style.height=n+"px"}if(!t.isDefined(i.attr("md-no-autogrow"))){var l=i[0],m=s.element[0],p=0/0,f=null;l.hasAttribute("rows")&&(p=parseInt(l.getAttribute("rows")));var h=e.debounce(a,1);u?(u.$formatters.push(o),u.$viewChangeListeners.push(o)):h(),i.on("keydown input",h),isNaN(p)&&(i.attr("rows","1"),i.on("scroll",c)),t.element(n).on("resize",h),r.$on("$destroy",function(){t.element(n).off("resize",h)})}}var s=d[0],u=d[1]||e.fakeNgModel(),p=t.isDefined(a.readonly);if(s){if(s.input)throw new Error(" can only have *one*
');r.$set("ngTrim","false"),l.element.append(m),c.$formatters.push(a),c.$viewChangeListeners.push(a),o.on("input keydown",function(){a()}),n.$watch(r.mdMaxlength,function(n){d=n,t.isNumber(n)&&n>0?(m.parent().length||e.enter(m,l.element,t.element(l.element[0].lastElementChild)),a()):e.leave(m)}),c.$validators["md-maxlength"]=function(e,n){return!t.isNumber(d)||0>d?!0:(e||o.val()||n||"").length<=d}}return{restrict:"A",require:["ngModel","^mdInputContainer"],link:n}}function i(e){function n(n,o,r,i){if(i&&!t.isDefined(i.element.attr("md-no-float"))){var a=r.placeholder;if(o.removeAttr("placeholder"),0==i.element.find("label").length){if(i.input&&"MD-SELECT"!=i.input[0].nodeName){var d='";i.element.addClass("md-icon-float"),i.element.prepend(d)}}else"MD-SELECT"!=o[0].nodeName&&e.warn("The placeholder='"+a+"' will be ignored since this md-input-container has a child label element.")}}return{restrict:"A",require:"^^?mdInputContainer",priority:200,link:n}}t.module("material.components.input",["material.core"]).directive("mdInputContainer",e).directive("label",n).directive("input",o).directive("textarea",o).directive("mdMaxlength",r).directive("placeholder",i),e.$inject=["$mdTheming","$parse"],o.$inject=["$mdUtil","$window","$mdAria"],r.$inject=["$animate"],i.$inject=["$log"]}(),function(){function e(e){return{restrict:"E",compile:function(t){return t[0].setAttribute("role","list"),e}}}function n(e,n,o){var r=["md-checkbox","md-switch"];return{restrict:"E",controller:"MdListController",compile:function(i,a){function d(){for(var e,t,n=["md-switch","md-checkbox"],o=0;t=n[o];++o)if((e=i.find(t)[0])&&!e.hasAttribute("aria-label")){var r=i.find("p")[0];if(!r)return;e.setAttribute("aria-label","Toggle "+r.textContent)}}function c(n){var o;if("div"==n)o=t.element('
'),o.append(i.contents()),i.addClass("md-proxy-focus");else{o=t.element('
');var r=["ng-click","aria-label","ng-disabled"];t.forEach(r,function(e){i[0].hasAttribute(e)&&(o[0].setAttribute(e,i[0].getAttribute(e)),i[0].removeAttribute(e))}),o.children().eq(0).append(i.contents())}if(i[0].setAttribute("tabindex","-1"),i.append(o),p&&p.hasAttribute("ng-click")){e.expect(p,"aria-label");var d=t.element('');d.attr("ng-click",p.getAttribute("ng-click")),p.removeAttribute("ng-click"),p.setAttribute("tabindex","-1"),p.classList.remove("md-secondary"),d.append(p),p=d[0]}p&&(p.hasAttribute("ng-click")||a.ngClick&&l(p))&&(i.addClass("md-with-secondary"),i.append(p))}function l(e){return-1!=r.indexOf(e.nodeName.toLowerCase())}function m(e,i,a,d){function c(){var e=i.children();e.length&&!e[0].hasAttribute("ng-click")&&t.forEach(r,function(e){t.forEach(s.querySelectorAll(e),function(e){m.push(e)})})}function l(){(m.length||u)&&(i.addClass("md-clickable"),d.attachRipple(e,t.element(i[0].querySelector(".md-no-style"))))}var m=[],s=i[0].firstElementChild,u=s&&s.hasAttribute("ng-click");c(),l(),i.hasClass("md-proxy-focus")&&m.length&&t.forEach(m,function(n){n=t.element(n),e.mouseActive=!1,n.on("mousedown",function(){e.mouseActive=!0,o(function(){e.mouseActive=!1},100)}).on("focus",function(){e.mouseActive===!1&&i.addClass("md-focused"),n.on("blur",function t(){i.removeClass("md-focused"),n.off("blur",t)})})}),u||m.length||s&&s.addEventListener("keypress",function(e){if("INPUT"!=e.target.nodeName&&"TEXTAREA"!=e.target.nodeName){var t=e.which||e.keyCode;t==n.KEY_CODE.SPACE&&s&&(s.click(),e.preventDefault(),e.stopPropagation())}}),i.off("click"),i.off("keypress"),m.length&&s&&i.children().eq(0).on("click",function(e){s.contains(e.target)&&t.forEach(m,function(n){e.target===n||n.contains(e.target)||t.element(n).triggerHandler("click")})})}var s,u,p=i[0].querySelector(".md-secondary");if(i[0].setAttribute("role","listitem"),a.ngClick)c("button");else{for(var f,h=0;f=r[h];++h)if(u=i[0].querySelector(f)){s=!0;break}s?c("div"):i[0].querySelector("md-button")||i.addClass("md-no-proxy")}return d(),m}}}function o(e,t,n){function o(e,t){var o={};n.attach(e,t,o)}var r=this;r.attachRipple=o}t.module("material.components.list",["material.core"]).controller("MdListController",o).directive("mdList",e).directive("mdListItem",n),e.$inject=["$mdTheming"],n.$inject=["$mdAria","$mdConstant","$timeout"],o.$inject=["$scope","$element","$mdListInkRipple"]}(),function(){function e(e){function n(e){e.addClass("md-menu");var t=e.children()[0];if(t.hasAttribute("ng-click")||(t=t.querySelector("[ng-click]")),t&&t.setAttribute("aria-haspopup","true"),2!=e.children().length)throw Error("Invalid HTML for md-menu. Expected two children elements.");return o}function o(e,n,o,r){var i=t.element('
'),a=n.children()[1];i.append(a),r.init(i),e.$on("$destroy",function(){i.remove(),r.close()})}return{restrict:"E",require:"mdMenu",controller:"mdMenuCtrl",scope:!0,compile:n}}function n(e,t,n,o){var r,i,a=this;this.init=function(e){r=e,i=n[0].querySelector("[ng-click]")},this.open=function(t){t&&t.stopPropagation(),a.isOpen=!0,i.setAttribute("aria-expanded","true"),e.show({scope:o,mdMenuCtrl:a,element:r,target:n[0]})},o.$mdOpenMenu=this.open,this.close=function(t){a.isOpen&&(a.isOpen=!1,i.setAttribute("aria-expanded","false"),e.hide(),t||n.children()[0].focus())},this.positionMode=function(){var e=(t.mdPositionMode||"target").split(" ");return 1==e.length&&e.push(e[0]),{left:e[0],top:e[1]}},this.offsets=function(){var e=(t.mdOffset||"0 0").split(" ").map(parseFloat);if(2==e.length)return{left:e[0],top:e[1]};if(1==e.length)return{top:e[0],left:e[0]};throw Error("Invalid offsets specified. Please follow format or ")}}t.module("material.components.menu",["material.core","material.components.backdrop"]).directive("mdMenu",e).controller("mdMenuCtrl",n),e.$inject=["$mdMenu"],n.$inject=["$mdMenu","$attrs","$element","$scope"]}(),function(){function o(o){function r(o,r,a,d,c,l){function m(e,n,i){function l(){if(!i.target)throw Error("$mdMenu.show() expected a target to animate from in options.target");t.extend(i,{alreadyOpen:!1,isRemoved:!1,target:t.element(i.target),parent:t.element(i.parent),menuContentEl:t.element(n[0].querySelector("md-menu-content")),backdrop:i.hasBackdrop&&a.createBackdrop(e,"md-menu-backdrop md-click-catcher")})}function m(){i.resizeFn=function(){f(n,i)},t.element(r).on("resize",i.resizeFn),t.element(r).on("orientationchange",i.resizeFn)}function u(){i.parent.append(n),n.removeClass("md-leave"),o(function(){o(function(){f(n,i),o(function(){n.addClass("md-active"),i.alreadyOpen=!0,n[0].style[c.CSS.TRANSFORM]=""})})})}function p(){n.addClass("md-clickable"),i.backdrop&&i.backdrop.on("click",function(t){t.preventDefault(),t.stopPropagation(),e.$apply(function(){i.mdMenuCtrl.close(!0)})}),i.menuContentEl.on("keydown",function(t){e.$apply(function(){switch(t.keyCode){case c.KEY_CODE.ESCAPE:i.mdMenuCtrl.close();break;case c.KEY_CODE.UP_ARROW:s(t,i.menuContentEl,i,-1);break;case c.KEY_CODE.DOWN_ARROW:s(t,i.menuContentEl,i,1)}})});var t=function(t){function n(){e.$apply(function(){i.mdMenuCtrl.close()})}function o(e,t){if(!e)return!1;for(var n,o=0;n=t[o];++o)for(var r,i=[n,"data-"+n,"x-"+n],a=0;r=i[a];++a)if(e.hasAttribute(r))return!0;return!1}var r=t.target;do{if(r==i.menuContentEl[0])return;if(o(r,["ng-click","ng-href","ui-sref"])){r.hasAttribute("disabled")||n();break}}while(r=r.parentNode)};i.menuContentEl[0].addEventListener("click",t,!0);var o=i.menuContentEl[0].querySelector("[md-menu-focus-target]");return o||(o=i.menuContentEl[0].firstElementChild.firstElementChild),o.focus(),function(){n.removeClass("md-clickable"),i.backdrop.off("click"),i.menuContentEl.off("keydown"),i.menuContentEl[0].removeEventListener("click",t,!0)}}return l(i),d.inherit(i.menuContentEl,i.target),m(),i.disableParentScroll&&(i.restoreScroll=a.disableScrollAround(i.element)),i.backdrop&&(d.inherit(i.backdrop,i.parent),i.parent.append(i.backdrop)),u(),h.waitTransitionEnd(n,{timeout:370})["finally"](function(e){return i.cleanupInteraction=p(),e})}function s(e,t,n,o){for(var r=a.getClosest(e.target,"MD-MENU-ITEM"),i=a.nodesToArray(t[0].children),d=i.indexOf(r),c=d+o;c>=0&&c
',compile:n}}t.module("material.components.progressCircular",["material.core"]).directive("mdProgressCircular",e),e.$inject=["$mdConstant","$mdTheming"]}(),function(){function e(e,o,r){function i(e,t,n){return e.attr("aria-valuemin",0),e.attr("aria-valuemax",100),e.attr("role","progressbar"),a}function a(i,a,c){r(a);var l=a[0].querySelector(".md-bar1").style,m=a[0].querySelector(".md-bar2").style,s=t.element(a[0].querySelector(".md-container"));c.$observe("value",function(e){if("query"!=c.mdMode){var t=d(e);a.attr("aria-valuenow",t),m[o.CSS.TRANSFORM]=n[t]}}),c.$observe("mdBufferValue",function(e){l[o.CSS.TRANSFORM]=n[d(e)]}),e(function(){s.addClass("md-ready")})}function d(e){return e>100?100:0>e?0:Math.ceil(e||0)}return{restrict:"E",template:'
',compile:i}}t.module("material.components.progressLinear",["material.core"]).directive("mdProgressLinear",e),e.$inject=["$$rAF","$mdConstant","$mdTheming"];var n=function(){function e(e){var t=e/100,n=(e-100)/2;return"translateX("+n.toString()+"%) scale("+t.toString()+", 1)"}for(var t=new Array(101),n=0;101>n;n++)t[n]=e(n);return t}()}(),function(){function e(e,n,o,r){function i(i,a,d,c){function l(){a.hasClass("md-focused")||a.addClass("md-focused")}function m(o){var r=o.which||o.keyCode;switch(r){case n.KEY_CODE.LEFT_ARROW:case n.KEY_CODE.UP_ARROW:o.preventDefault(),s.selectPrevious(),l();break;case n.KEY_CODE.RIGHT_ARROW:case n.KEY_CODE.DOWN_ARROW:o.preventDefault(),s.selectNext(),l();break;case n.KEY_CODE.ENTER:var i=t.element(e.getClosest(a[0],"form"));i.length>0&&i.triggerHandler("submit")}}o(a);var s=c[0],u=c[1]||e.fakeNgModel();s.init(u),i.mouseActive=!1,a.attr({role:"radiogroup",tabIndex:a.attr("tabindex")||"0"}).on("keydown",m).on("mousedown",function(e){i.mouseActive=!0,r(function(){i.mouseActive=!1},100)}).on("focus",function(){i.mouseActive===!1&&s.$element.addClass("md-focused")}).on("blur",function(){s.$element.removeClass("md-focused")})}function a(e){this._radioButtonRenderFns=[],this.$element=e}function d(){return{init:function(e){this._ngModelCtrl=e,this._ngModelCtrl.$render=t.bind(this,this.render)},add:function(e){this._radioButtonRenderFns.push(e)},remove:function(e){var t=this._radioButtonRenderFns.indexOf(e);-1!==t&&this._radioButtonRenderFns.splice(t,1)},render:function(){this._radioButtonRenderFns.forEach(function(e){e()})},setViewValue:function(e,t){this._ngModelCtrl.$setViewValue(e,t),this.render()},getViewValue:function(){return this._ngModelCtrl.$viewValue},selectNext:function(){return c(this.$element,1)},selectPrevious:function(){return c(this.$element,-1)},setActiveDescendant:function(e){this.$element.attr("aria-activedescendant",e)}}}function c(n,o){var r=e.iterator(n[0].querySelectorAll("md-radio-button"),!0);if(r.count()){var i=function(e){return!t.element(e).attr("disabled")},a=n[0].querySelector("md-radio-button.md-checked"),d=r[0>o?"previous":"next"](a,i)||r.first();t.element(d).triggerHandler("click")}}return a.prototype=d(),{restrict:"E",controller:["$element",a],require:["mdRadioGroup","?ngModel"],link:{pre:i}}}function n(e,t,n){function o(o,i,a,d){function c(e){i[0].hasAttribute("disabled")||o.$apply(function(){d.setViewValue(a.value,e&&e.type)})}function l(){var e=d.getViewValue()==a.value;e!==s&&(s=e,i.attr("aria-checked",e),e?(i.addClass(r),d.setActiveDescendant(i.attr("id"))):i.removeClass(r))}function m(n,o){function r(){return a.id||"radio_"+t.nextUid()}o.ariaId=r(),n.attr({id:o.ariaId,role:"radio","aria-checked":"false"}),e.expectWithText(n,"aria-label")}var s;n(i),m(i,o),d.add(l),a.$observe("value",l),i.on("click",c).on("$destroy",function(){d.remove(l)})}var r="md-checked";return{restrict:"E",require:"^mdRadioGroup",transclude:!0,template:'
',link:o}}t.module("material.components.radioButton",["material.core"]).directive("mdRadioGroup",e).directive("mdRadioButton",n),e.$inject=["$mdUtil","$mdConstant","$mdTheming","$timeout"],n.$inject=["$mdAria","$mdUtil","$mdTheming"]}(),function(){function e(e,o,r,i,a,d,c){function l(a,l){var m=t.element("");if(m.append(''),m.addClass("md-select-value"),m[0].hasAttribute("id")||m.attr("id","select_value_label_"+o.nextUid()),a.find("md-content").length||a.append(t.element("").append(a.contents())),l.mdOnOpen&&a.find("md-content").prepend(t.element("").attr("md-mode","indeterminate").attr("ng-hide","$$loadingAsyncDone").wrap("
").parent()),l.name){var s=t.element(',