Skip navigation links
finMath lib documentation
A B C D E G I M N P S T V 

A

actionPerformed(ActionEvent) - Method in class net.finmath.smartcontract.demo.DemoScheduleSimulator
 
actionPerformed(ActionEvent) - Method in class net.finmath.smartcontract.demo.Visualiser
 
addProperty(ChartData.propertyKey, Object) - Method in class net.finmath.smartcontract.demo.chartdatageneration.ChartData
 
addPropertyChartTitle(String) - Method in class net.finmath.smartcontract.demo.chartdatageneration.ChartData
 

B

BrownianMotionOracle - Class in net.finmath.smartcontract.oracle
A dummy oracle which generates values using a geometric Brownian motion.
BrownianMotionOracle() - Constructor for class net.finmath.smartcontract.oracle.BrownianMotionOracle
A dummy oracle which generates values using a geometric Brownian motion.
BrownianMotionOracle(LocalDateTime) - Constructor for class net.finmath.smartcontract.oracle.BrownianMotionOracle
A dummy oracle which generates values using a geometric Brownian motion.
BrownianMotionOracle(LocalDateTime, double, double, double, double, int) - Constructor for class net.finmath.smartcontract.oracle.BrownianMotionOracle
A dummy oracle which generates values using a geometric Brownian motion.
BrownianMotionOracle(TimeDiscretization, LocalDateTime, double, double, double, int) - Constructor for class net.finmath.smartcontract.oracle.BrownianMotionOracle
 

C

calibrateModel(Stream<CalibrationSpecProvider>, CalibrationContext) - Method in class net.finmath.smartcontract.simulation.curvecalibration.Calibrator
 
CalibrationContext - Interface in net.finmath.smartcontract.simulation.curvecalibration
Interface for classes providing a calibration context in terms of a reference date and calibration info.
CalibrationContextImpl - Class in net.finmath.smartcontract.simulation.curvecalibration
A calibration context in terms of a reference date and calibration info.
CalibrationContextImpl(LocalDate, double) - Constructor for class net.finmath.smartcontract.simulation.curvecalibration.CalibrationContextImpl
 
CalibrationDatapoint - Class in net.finmath.smartcontract.simulation.curvecalibration
Contains a single data point used for the calibration of a financial model.
CalibrationDatapoint(String, String, String, double) - Constructor for class net.finmath.smartcontract.simulation.curvecalibration.CalibrationDatapoint
 
CalibrationParser - Interface in net.finmath.smartcontract.simulation.curvecalibration
Interface for parsers generating CalibrationSpecProvider from CalibrationDatapoint.
CalibrationParserDataPoints - Class in net.finmath.smartcontract.simulation.curvecalibration
Parses calibration data points and converts it to calibration specs
CalibrationParserDataPoints() - Constructor for class net.finmath.smartcontract.simulation.curvecalibration.CalibrationParserDataPoints
 
CalibrationResult - Class in net.finmath.smartcontract.simulation.curvecalibration
Contains the result of a calibration adding additional statistics to the calibrated model.
CalibrationResult(CalibratedCurves, CalibratedCurves.CalibrationSpec...) - Constructor for class net.finmath.smartcontract.simulation.curvecalibration.CalibrationResult
 
CalibrationSpecProvider - Interface in net.finmath.smartcontract.simulation.curvecalibration
Provides a way to get a CalibrationSpec for finmath calibration.
CalibrationSpecProviderOis - Class in net.finmath.smartcontract.simulation.curvecalibration
A calibration spec provider for OIS swaps.
CalibrationSpecProviderOis(String, String, double) - Constructor for class net.finmath.smartcontract.simulation.curvecalibration.CalibrationSpecProviderOis
 
CalibrationSpecProviderSwap - Class in net.finmath.smartcontract.simulation.curvecalibration
A calibration spec provider for swaps.
CalibrationSpecProviderSwap(String, String, String, double) - Constructor for class net.finmath.smartcontract.simulation.curvecalibration.CalibrationSpecProviderSwap
 
Calibrator - Class in net.finmath.smartcontract.simulation.curvecalibration
An object calibrating models from a stream of calibration spec providers
Calibrator() - Constructor for class net.finmath.smartcontract.simulation.curvecalibration.Calibrator
 
ChartData - Class in net.finmath.smartcontract.demo.chartdatageneration
A Class containing data (CategoryDataset) as well as other chart properties (Colors, Titles, Axes...)
ChartData(CategoryDataset) - Constructor for class net.finmath.smartcontract.demo.chartdatageneration.ChartData
 
ChartData.propertyKey - Enum in net.finmath.smartcontract.demo.chartdatageneration
 
ChartDataGenerator - Interface in net.finmath.smartcontract.demo.chartdatageneration
Interface for generationg a the underliyng dataset for a JFREEChart
ChartDataGeneratorMarketValue - Class in net.finmath.smartcontract.demo.chartdatageneration
This is a very simple dataset generator which generates chart data for a time series of market vaues
ChartDataGeneratorMarketValue(ValuationOraclePlainSwapHistoricScenarios, List<LocalDateTime>) - Constructor for class net.finmath.smartcontract.demo.chartdatageneration.ChartDataGeneratorMarketValue
 
ChartDataGeneratorSDCAccountBalance - Class in net.finmath.smartcontract.demo.chartdatageneration
This is a very simple dataset generator which generates ChartData (based on an ActionEvent) for a SDC Account Balance Simulation
ChartDataGeneratorSDCAccountBalance(double, ValuationOraclePlainSwapHistoricScenarios, List<LocalDateTime>) - Constructor for class net.finmath.smartcontract.demo.chartdatageneration.ChartDataGeneratorSDCAccountBalance
 
ContinouslyCompoundedBankAccountOracle - Class in net.finmath.smartcontract.oracle
A dummy oracle which generates values as initalValue * Math.exp(r T).
ContinouslyCompoundedBankAccountOracle() - Constructor for class net.finmath.smartcontract.oracle.ContinouslyCompoundedBankAccountOracle
A dummy oracle which generates values as initalValue * Math.exp(r T).
ContinouslyCompoundedBankAccountOracle(LocalDateTime) - Constructor for class net.finmath.smartcontract.oracle.ContinouslyCompoundedBankAccountOracle
A dummy oracle which generates values as initalValue * Math.exp(r T).
ContinouslyCompoundedBankAccountOracle(LocalDateTime, double, double, double) - Constructor for class net.finmath.smartcontract.oracle.ContinouslyCompoundedBankAccountOracle
A dummy oracle which generates values as initalValue * Math.exp(r T).
ContinouslyCompoundedBankAccountOracle(TimeDiscretization, LocalDateTime, double, double) - Constructor for class net.finmath.smartcontract.oracle.ContinouslyCompoundedBankAccountOracle
 
createPlot(ActionEvent) - Method in interface net.finmath.smartcontract.demo.plotgeneration.PlotGenerator
 
createPlot(ActionEvent) - Method in class net.finmath.smartcontract.demo.plotgeneration.StackedBarchartGenerator
 
createPlot(ActionEvent) - Method in class net.finmath.smartcontract.demo.plotgeneration.TimeSeriesChartGenerator
 
curveDataPointSet - Variable in class net.finmath.smartcontract.simulation.scenariogeneration.IRCurveData
 

D

DemoLauncher - Class in net.finmath.smartcontract.demo
Demo Launcher, generating historical Scenarios, building a DataGenerator, and starting Visualiser
DemoLauncher() - Constructor for class net.finmath.smartcontract.demo.DemoLauncher
 
DemoScheduleSimulator - Class in net.finmath.smartcontract.demo
Very basic schedule simulator which maps an eventtime on a schedule time
DemoScheduleSimulator(SmartDerivativeContractSchedule) - Constructor for class net.finmath.smartcontract.demo.DemoScheduleSimulator
 
DISCOUNT_EUR_OIS - Static variable in class net.finmath.smartcontract.simulation.curvecalibration.Calibrator
 

E

EventTimesImpl(LocalDateTime, LocalDateTime, Duration, LocalDateTime) - Constructor for class net.finmath.smartcontract.contract.SmartDerivativeContractScheduleGenerator.EventTimesImpl
 

G

generateAnalyticSwapObject(LocalDate, String, double, boolean, String, String) - Static method in class net.finmath.smartcontract.simulation.products.IRSwapGenerator
 
generatedChartData(ActionEvent) - Method in interface net.finmath.smartcontract.demo.chartdatageneration.ChartDataGenerator
 
generatedChartData(ActionEvent) - Method in class net.finmath.smartcontract.demo.chartdatageneration.ChartDataGeneratorMarketValue
 
generatedChartData(ActionEvent) - Method in class net.finmath.smartcontract.demo.chartdatageneration.ChartDataGeneratorSDCAccountBalance
 
GeometricBrownianMotionOracle - Class in net.finmath.smartcontract.oracle
A dummy oracle which generates values using a geometric Brownian motion.
GeometricBrownianMotionOracle() - Constructor for class net.finmath.smartcontract.oracle.GeometricBrownianMotionOracle
A dummy oracle which generates values using a geometric Brownian motion.
GeometricBrownianMotionOracle(LocalDateTime) - Constructor for class net.finmath.smartcontract.oracle.GeometricBrownianMotionOracle
A dummy oracle which generates values using a geometric Brownian motion.
GeometricBrownianMotionOracle(LocalDateTime, double, double, double, double, int) - Constructor for class net.finmath.smartcontract.oracle.GeometricBrownianMotionOracle
A dummy oracle which generates values using a geometric Brownian motion.
GeometricBrownianMotionOracle(TimeDiscretization, LocalDateTime, double, double, double, int) - Constructor for class net.finmath.smartcontract.oracle.GeometricBrownianMotionOracle
 
getAccountAccessAllowedPeriod() - Method in interface net.finmath.smartcontract.contract.SmartDerivativeContractSchedule.EventTimes
 
getAccountAccessAllowedPeriod() - Method in class net.finmath.smartcontract.contract.SmartDerivativeContractScheduleGenerator.EventTimesImpl
 
getAccountAccessAllowedStart() - Method in interface net.finmath.smartcontract.contract.SmartDerivativeContractSchedule.EventTimes
 
getAccountAccessAllowedStart() - Method in class net.finmath.smartcontract.contract.SmartDerivativeContractScheduleGenerator.EventTimesImpl
 
getAccuracy() - Method in interface net.finmath.smartcontract.simulation.curvecalibration.CalibrationContext
 
getAccuracy() - Method in class net.finmath.smartcontract.simulation.curvecalibration.CalibrationContextImpl
 
getAmount(LocalDateTime, LocalDateTime) - Method in interface net.finmath.smartcontract.oracle.ValuationOracle
Provides the value of the Oracle at a given evaluation time.
getAmount(LocalDateTime, LocalDateTime) - Method in class net.finmath.smartcontract.oracle.ValuationOraclePlainSwapHistoricScenarios
 
getAmount(LocalDateTime, LocalDateTime) - Method in class net.finmath.smartcontract.oracle.ValuationOracleSamplePath
 
getCalibratedModel() - Method in class net.finmath.smartcontract.simulation.curvecalibration.CalibrationResult
 
getCalibrationSpec(CalibrationContext) - Method in interface net.finmath.smartcontract.simulation.curvecalibration.CalibrationSpecProvider
 
getCalibrationSpec(CalibrationContext) - Method in class net.finmath.smartcontract.simulation.curvecalibration.CalibrationSpecProviderOis
 
getCalibrationSpec(CalibrationContext) - Method in class net.finmath.smartcontract.simulation.curvecalibration.CalibrationSpecProviderSwap
 
getCurveData(String) - Method in class net.finmath.smartcontract.simulation.scenariogeneration.IRMarketDataScenario
 
getCurveName() - Method in class net.finmath.smartcontract.simulation.curvecalibration.CalibrationDatapoint
 
getDataAsCalibrationDataProintStream(CalibrationParser) - Method in class net.finmath.smartcontract.simulation.scenariogeneration.IRMarketDataScenario
Returns a Stream of CalibrationSpecs, curveData provided as calibration data points, will be converted to calibration specs Currently only Swap-Rates are used.
getDataPointStreamForProductType(String) - Method in class net.finmath.smartcontract.simulation.scenariogeneration.IRCurveData
Returns Stream of calibration data points for a given product type
getDataset() - Method in class net.finmath.smartcontract.demo.chartdatageneration.ChartData
 
getDate() - Method in class net.finmath.smartcontract.simulation.scenariogeneration.IRMarketDataScenario
 
getEventData() - Method in class net.finmath.smartcontract.contract.SmartDerivativeContractEvent
 
getEventTime() - Method in class net.finmath.smartcontract.contract.SmartDerivativeContractEvent
 
getEventTimes() - Method in interface net.finmath.smartcontract.contract.SmartDerivativeContractSchedule
 
getEventTimes() - Method in class net.finmath.smartcontract.contract.SmartDerivativeContractScheduleGenerator.SimpleSchedule
 
getEventType() - Method in class net.finmath.smartcontract.contract.SmartDerivativeContractEvent
 
getFreshness() - Method in class net.finmath.smartcontract.simulation.curvecalibration.CalibrationResult
 
getMargin(LocalDateTime, LocalDateTime) - Method in class net.finmath.smartcontract.contract.SmartDerivativeContractMargining
Get the margin of the contract based on the valuation oracles.
getMarginCheckTime() - Method in interface net.finmath.smartcontract.contract.SmartDerivativeContractSchedule.EventTimes
 
getMarginCheckTime() - Method in class net.finmath.smartcontract.contract.SmartDerivativeContractScheduleGenerator.EventTimesImpl
 
getMaturity() - Method in class net.finmath.smartcontract.simulation.curvecalibration.CalibrationDatapoint
 
getProductName() - Method in class net.finmath.smartcontract.simulation.curvecalibration.CalibrationDatapoint
 
getPropertyChartTitle() - Method in class net.finmath.smartcontract.demo.chartdatageneration.ChartData
 
getPropertyColorListStackedBar() - Method in class net.finmath.smartcontract.demo.chartdatageneration.ChartData
 
getPropertyMap() - Method in class net.finmath.smartcontract.demo.chartdatageneration.ChartData
 
getQuote() - Method in class net.finmath.smartcontract.simulation.curvecalibration.CalibrationDatapoint
 
getReferenceDate() - Method in interface net.finmath.smartcontract.simulation.curvecalibration.CalibrationContext
 
getReferenceDate() - Method in class net.finmath.smartcontract.simulation.curvecalibration.CalibrationContextImpl
 
getScenariosFromJsonFile(String, DateTimeFormatter) - Static method in class net.finmath.smartcontract.simulation.scenariogeneration.IRScenarioGenerator
Static method which parses a json file and converts it to a list of market data scenarios
getScheduleForBusinessDays(String, LocalDate, LocalDate, LocalTime, Duration) - Static method in class net.finmath.smartcontract.contract.SmartDerivativeContractScheduleGenerator
Create a daily event schedule, where accountAccessStart is one minute after settlementTime, accountAccessEnd is accountAccessAllowedDuration after accountAccessStart, marginCheckTime is one minute after accountAccessEnd.
getScheduleForBusinessDays(String, LocalDate, LocalDate, LocalTime, LocalTime, Duration, LocalTime) - Static method in class net.finmath.smartcontract.contract.SmartDerivativeContractScheduleGenerator
 
getSettementTime() - Method in interface net.finmath.smartcontract.contract.SmartDerivativeContractSchedule.EventTimes
 
getSettementTime() - Method in class net.finmath.smartcontract.contract.SmartDerivativeContractScheduleGenerator.EventTimesImpl
 
getSumOfSquaredErrors() - Method in class net.finmath.smartcontract.simulation.curvecalibration.CalibrationResult
 
getValue(LocalDateTime, LocalDateTime) - Method in class net.finmath.smartcontract.oracle.BrownianMotionOracle
 
getValue(LocalDateTime, LocalDateTime) - Method in class net.finmath.smartcontract.oracle.ContinouslyCompoundedBankAccountOracle
 
getValue(LocalDateTime, LocalDateTime) - Method in class net.finmath.smartcontract.oracle.GeometricBrownianMotionOracle
 
getValue(LocalDateTime, LocalDateTime) - Method in interface net.finmath.smartcontract.oracle.StochasticValuationOracle
Provides that value of the Oracle at a given evaluation time.
getValue(LocalDateTime, LocalDateTime) - Method in interface net.finmath.smartcontract.oracle.ValuationOracle
Provides the value of the Oracle at a given evaluation time using market data from a given time.
getValue(LocalDateTime, LocalDateTime) - Method in class net.finmath.smartcontract.oracle.ValuationOraclePlainSwapHistoricScenarios
 
getValue(LocalDateTime, LocalDateTime) - Method in class net.finmath.smartcontract.oracle.ValuationOracleSamplePath
 

I

IRCurveData - Class in net.finmath.smartcontract.simulation.scenariogeneration
A IRCurveData Class holds a Set of CalibrationDataPoints and its own curve key
IRCurveData(String, Map<String, Map<String, Double>>) - Constructor for class net.finmath.smartcontract.simulation.scenariogeneration.IRCurveData
CurveFromInterpolationPoints Key and Map will be provided.
IRMarketDataScenario - Class in net.finmath.smartcontract.simulation.scenariogeneration
IR Market Data Scenario Class holds a SecnarioDate an a Map containing CurveData
IRMarketDataScenario(Map<String, IRCurveData>, LocalDateTime) - Constructor for class net.finmath.smartcontract.simulation.scenariogeneration.IRMarketDataScenario
 
IRScenarioGenerator - Class in net.finmath.smartcontract.simulation.scenariogeneration
Scenario Generator generates IRScenarios from a given json file
IRScenarioGenerator() - Constructor for class net.finmath.smartcontract.simulation.scenariogeneration.IRScenarioGenerator
 
IRSwapGenerator - Class in net.finmath.smartcontract.simulation.products
Scenario Generator provides static method for generating an analytic swap object
IRSwapGenerator() - Constructor for class net.finmath.smartcontract.simulation.products.IRSwapGenerator
 

M

main(String[]) - Static method in class net.finmath.smartcontract.demo.DemoLauncher
 
main(String[]) - Static method in class net.finmath.smartcontract.demo.VisualiserSDC
Run the demo.

N

net.finmath.smartcontract - package net.finmath.smartcontract
Classes related to smart derivative contracts.
net.finmath.smartcontract.contract - package net.finmath.smartcontract.contract
Classes supporting the implementation of a smart derivative contract.
net.finmath.smartcontract.demo - package net.finmath.smartcontract.demo
Package for Demo and Visualisation
net.finmath.smartcontract.demo.chartdatageneration - package net.finmath.smartcontract.demo.chartdatageneration
Package for ChartData Generation
net.finmath.smartcontract.demo.plotgeneration - package net.finmath.smartcontract.demo.plotgeneration
Package for Simple Plot Generations
net.finmath.smartcontract.oracle - package net.finmath.smartcontract.oracle
Interface defining valuation oracles.
net.finmath.smartcontract.simulation - package net.finmath.smartcontract.simulation
Classes providing benchmark simulations of the smart contract.
net.finmath.smartcontract.simulation.curvecalibration - package net.finmath.smartcontract.simulation.curvecalibration
Providing curve calibrations.
net.finmath.smartcontract.simulation.products - package net.finmath.smartcontract.simulation.products
Classes providing product factories
net.finmath.smartcontract.simulation.scenariogeneration - package net.finmath.smartcontract.simulation.scenariogeneration
Classes providing interest rate curve scenarios.

P

parse(Stream<CalibrationDatapoint>) - Method in interface net.finmath.smartcontract.simulation.curvecalibration.CalibrationParser
 
parse(Stream<CalibrationDatapoint>) - Method in class net.finmath.smartcontract.simulation.curvecalibration.CalibrationParserDataPoints
 
PlotGenerator - Interface in net.finmath.smartcontract.demo.plotgeneration
Interface for generationg a JFREEChart

S

SimpleSchedule(List<SmartDerivativeContractSchedule.EventTimes>) - Constructor for class net.finmath.smartcontract.contract.SmartDerivativeContractScheduleGenerator.SimpleSchedule
 
SmartDerivativeContract - Class in net.finmath.smartcontract.contract
 
SmartDerivativeContract() - Constructor for class net.finmath.smartcontract.contract.SmartDerivativeContract
 
SmartDerivativeContractEvent - Class in net.finmath.smartcontract.contract
Observable smart derivative contract event.
SmartDerivativeContractEvent(SmartDerivativeContractEvent.EventsTypes, LocalDateTime, Object) - Constructor for class net.finmath.smartcontract.contract.SmartDerivativeContractEvent
 
SmartDerivativeContractEvent.EventsTypes - Enum in net.finmath.smartcontract.contract
 
SmartDerivativeContractMargining - Class in net.finmath.smartcontract.contract
The margin agreement of a smart derivative contract.
SmartDerivativeContractMargining(ValuationOracle) - Constructor for class net.finmath.smartcontract.contract.SmartDerivativeContractMargining
 
SmartDerivativeContractSchedule - Interface in net.finmath.smartcontract.contract
Minimal interface for the event times of a smart derivative contract.
SmartDerivativeContractSchedule.EventTimes - Interface in net.finmath.smartcontract.contract
Interface for a smart derivative event time set consisting of settlement, account access (start and duration) and margin check.
SmartDerivativeContractScheduleGenerator - Class in net.finmath.smartcontract.contract
Generates schedules for smart derivative contracts.
SmartDerivativeContractScheduleGenerator() - Constructor for class net.finmath.smartcontract.contract.SmartDerivativeContractScheduleGenerator
 
SmartDerivativeContractScheduleGenerator.EventTimesImpl - Class in net.finmath.smartcontract.contract
Simple POJO implementation of SmartDerivativeContractSchedule.EventTimes.
SmartDerivativeContractScheduleGenerator.SimpleSchedule - Class in net.finmath.smartcontract.contract
Simple list based implementation of SmartDerivativeContractSchedule.
StackedBarchartGenerator - Class in net.finmath.smartcontract.demo.plotgeneration
A simple generator for generating a stacked bar chart
StackedBarchartGenerator(ChartDataGenerator) - Constructor for class net.finmath.smartcontract.demo.plotgeneration.StackedBarchartGenerator
 
start() - Method in class net.finmath.smartcontract.demo.VisualiserSDC
 
StochasticValuationOracle - Interface in net.finmath.smartcontract.oracle
Interface for Oracles providing a valuation random variables at a given time.

T

TimeSeriesChartGenerator - Class in net.finmath.smartcontract.demo.plotgeneration
A simple generator for generating a time series chart
TimeSeriesChartGenerator(ChartDataGenerator) - Constructor for class net.finmath.smartcontract.demo.plotgeneration.TimeSeriesChartGenerator
 

V

ValuationOracle - Interface in net.finmath.smartcontract.oracle
Interface for Oracles providing a valuation at a given time.
ValuationOraclePlainSwapHistoricScenarios - Class in net.finmath.smartcontract.oracle
An oracle for swap valuation which generates values using externally provided historical market data scenarios.
ValuationOraclePlainSwapHistoricScenarios(Swap, double, List<IRMarketDataScenario>) - Constructor for class net.finmath.smartcontract.oracle.ValuationOraclePlainSwapHistoricScenarios
Oracle will be instantiated based on a Swap product an market data scenario list
ValuationOracleSamplePath - Class in net.finmath.smartcontract.oracle
A valuation oracle constructed from a simulation providing a stochastic valuation oracle by extracting a given sample path.
ValuationOracleSamplePath(StochasticValuationOracle, int) - Constructor for class net.finmath.smartcontract.oracle.ValuationOracleSamplePath
Create a valuation oracle from a simulation providing a stochastic valuation oracle by extracting a given sample path.
valueOf(String) - Static method in enum net.finmath.smartcontract.contract.SmartDerivativeContractEvent.EventsTypes
Returns the enum constant of this type with the specified name.
valueOf(String) - Static method in enum net.finmath.smartcontract.demo.chartdatageneration.ChartData.propertyKey
Returns the enum constant of this type with the specified name.
values() - Static method in enum net.finmath.smartcontract.contract.SmartDerivativeContractEvent.EventsTypes
Returns an array containing the constants of this enum type, in the order they are declared.
values() - Static method in enum net.finmath.smartcontract.demo.chartdatageneration.ChartData.propertyKey
Returns an array containing the constants of this enum type, in the order they are declared.
Visualiser - Class in net.finmath.smartcontract.demo
Visualiser is an abstract class which handles the automatic update of an Event.
Visualiser(String, List<PlotGenerator>) - Constructor for class net.finmath.smartcontract.demo.Visualiser
 
VisualiserSDC - Class in net.finmath.smartcontract.demo
Visualization of the settlement using Smart Derivative Contract with a 10Y swap, using a valuation oracle with historic market data.
VisualiserSDC() - Constructor for class net.finmath.smartcontract.demo.VisualiserSDC
 
A B C D E G I M N P S T V 
Skip navigation links
Copyright © 2018 finmath.net.

Copyright © 2019. All rights reserved.