Running: ./testmodel.py --libraries=/home/hudson/saved_omc/libraries/.openmodelica/libraries/ --ompython_omhome=/usr Buildings_7.0.0_Buildings.Fluid.CHPs.BaseClasses.Validation.WaterFlowControl.conf.json Using package ModelicaServices with version 3.2.3 (/home/hudson/saved_omc/libraries/.openmodelica/libraries/ModelicaServices 3.2.3+maint.om/package.mo) Using package Modelica with version 3.2.3 (/home/hudson/saved_omc/libraries/.openmodelica/libraries/Modelica 3.2.3+maint.om/package.mo) Using package Complex with version 3.2.3 (/home/hudson/saved_omc/libraries/.openmodelica/libraries/Complex 3.2.3+maint.om/package.mo) Using package Buildings with version 7.0.1 (/home/hudson/saved_omc/libraries/.openmodelica/libraries/Buildings 7.0.1/package.mo) Running command: "" <> buildModelFMU(Buildings.Fluid.CHPs.BaseClasses.Validation.WaterFlowControl,fileNamePrefix="Buildings_7_0_0_Buildings_Fluid_CHPs_BaseClasses_Validation_WaterFlowControl",fmuType="me",version="2.0",platforms={"static"}) Notification: Performance of loadFile(/home/hudson/saved_omc/libraries/.openmodelica/libraries/Buildings 7.0.1/package.mo): time 2.185/2.185, allocations: 248.7 MB / 256.2 MB, free: 7.074 MB / 202.7 MB Notification: Performance of loadFile(/home/hudson/saved_omc/libraries/.openmodelica/libraries/Complex 3.2.3+maint.om/package.mo): time 0.001553/0.001553, allocations: 189.1 kB / 315.4 MB, free: 4 MB / 250.7 MB Notification: Performance of loadFile(/home/hudson/saved_omc/libraries/.openmodelica/libraries/Modelica 3.2.3+maint.om/package.mo): time 2.069/2.069, allocations: 205.3 MB / 0.5662 GB, free: 0.6016 MB / 410.7 MB Notification: Performance of loadFile(/home/hudson/saved_omc/libraries/.openmodelica/libraries/ModelicaServices 3.2.3+maint.om/package.mo): time 0.001093/0.001093, allocations: 101.8 kB / 0.6704 GB, free: 5.805 MB / 0.5105 GB Notification: Performance of FrontEnd - loaded program: time 2.599e-05/2.599e-05, allocations: 4 kB / 0.7803 GB, free: 103.3 MB / 0.5417 GB Notification: Performance of FrontEnd - Absyn->SCode: time 0.2035/0.2036, allocations: 106.3 MB / 0.8841 GB, free: 12.98 MB / 0.5573 GB Notification: Performance of FrontEnd - scodeFlatten: time 0.8759/1.08, allocations: 145.6 MB / 1.026 GB, free: 9.305 MB / 0.6511 GB Notification: Performance of FrontEnd - mkProgramGraph: time 0.0003389/1.08, allocations: 98.31 kB / 1.026 GB, free: 9.25 MB / 0.6511 GB Notification: Performance of FrontEnd - DAE generated: time 0.1678/1.248, allocations: 40.08 MB / 1.066 GB, free: 8.039 MB / 0.6823 GB Notification: Performance of FrontEnd: time 1.873e-06/1.248, allocations: 0 / 1.066 GB, free: 8.039 MB / 0.6823 GB Notification: Performance of Transformations before backend: time 0.0002957/1.248, allocations: 51.94 kB / 1.066 GB, free: 7.988 MB / 0.6823 GB Notification: Model statistics after passing the front-end and creating the data structures used by the back-end: * Number of equations: 329 * Number of variables: 329 Notification: Performance of Generate backend data structure: time 0.006054/1.254, allocations: 1.871 MB / 1.067 GB, free: 6.188 MB / 0.6823 GB Notification: Performance of prepare preOptimizeDAE: time 5.95e-05/1.254, allocations: 8.031 kB / 1.067 GB, free: 6.18 MB / 0.6823 GB Notification: Performance of preOpt normalInlineFunction (simulation): time 0.001201/1.255, allocations: 249 kB / 1.068 GB, free: 5.934 MB / 0.6823 GB Notification: Performance of preOpt evaluateParameters (simulation): time 0.004442/1.26, allocations: 1.294 MB / 1.069 GB, free: 4.863 MB / 0.6823 GB Notification: Performance of preOpt simplifyIfEquations (simulation): time 0.0001978/1.26, allocations: 95.17 kB / 1.069 GB, free: 4.77 MB / 0.6823 GB Notification: Performance of preOpt expandDerOperator (simulation): time 0.0003475/1.261, allocations: 91.98 kB / 1.069 GB, free: 4.68 MB / 0.6823 GB Notification: Performance of preOpt removeEqualFunctionCalls (simulation): time 0.002934/1.264, allocations: 0.899 MB / 1.07 GB, free: 4.141 MB / 0.6823 GB Notification: Performance of preOpt clockPartitioning (simulation): time 0.003551/1.267, allocations: 1.27 MB / 1.071 GB, free: 3.094 MB / 0.6823 GB Notification: Performance of preOpt findStateOrder (simulation): time 4.43e-05/1.267, allocations: 7.922 kB / 1.071 GB, free: 3.086 MB / 0.6823 GB Notification: Performance of preOpt replaceEdgeChange (simulation): time 0.0001602/1.267, allocations: 11.61 kB / 1.071 GB, free: 3.078 MB / 0.6823 GB Notification: Performance of preOpt inlineArrayEqn (simulation): time 5.203e-05/1.267, allocations: 40 kB / 1.071 GB, free: 3.039 MB / 0.6823 GB Notification: Performance of preOpt removeSimpleEquations (simulation): time 0.01185/1.279, allocations: 5.769 MB / 1.077 GB, free: 14.21 MB / 0.698 GB Notification: Performance of preOpt comSubExp (simulation): time 0.00208/1.281, allocations: 0.7381 MB / 1.078 GB, free: 13.75 MB / 0.698 GB Notification: Performance of preOpt resolveLoops (simulation): time 0.0008999/1.282, allocations: 360 kB / 1.078 GB, free: 13.54 MB / 0.698 GB Notification: Performance of preOpt evalFunc (simulation): time 0.0003434/1.283, allocations: 121.2 kB / 1.078 GB, free: 13.41 MB / 0.698 GB Notification: Performance of preOpt encapsulateWhenConditions (simulation): time 0.00132/1.284, allocations: 497.4 kB / 1.079 GB, free: 13.05 MB / 0.698 GB Notification: Performance of pre-optimization done (n=103): time 4.899e-06/1.284, allocations: 0 / 1.079 GB, free: 13.05 MB / 0.698 GB Notification: Performance of matching and sorting (n=103): time 0.002596/1.287, allocations: 0.8529 MB / 1.079 GB, free: 12.38 MB / 0.698 GB Notification: Performance of inlineWhenForInitialization (initialization): time 0.0001015/1.287, allocations: 128 kB / 1.08 GB, free: 12.23 MB / 0.698 GB Notification: Performance of selectInitializationVariablesDAE (initialization): time 0.004337/1.291, allocations: 1.764 MB / 1.081 GB, free: 10.9 MB / 0.698 GB Notification: Performance of collectPreVariables (initialization): time 0.0003737/1.292, allocations: 60.06 kB / 1.081 GB, free: 10.85 MB / 0.698 GB Notification: Performance of collectInitialEqns (initialization): time 0.001279/1.293, allocations: 0.931 MB / 1.082 GB, free: 10.35 MB / 0.698 GB Notification: Performance of collectInitialBindings (initialization): time 0.000523/1.294, allocations: 244.6 kB / 1.082 GB, free: 10.15 MB / 0.698 GB Notification: Performance of simplifyInitialFunctions (initialization): time 0.0001247/1.294, allocations: 0 / 1.082 GB, free: 10.15 MB / 0.698 GB Notification: Performance of setup shared object (initialization): time 0.0002028/1.294, allocations: 365.7 kB / 1.083 GB, free: 9.812 MB / 0.698 GB Notification: Performance of preBalanceInitialSystem (initialization): time 0.00114/1.295, allocations: 412.1 kB / 1.083 GB, free: 9.578 MB / 0.698 GB Notification: Performance of partitionIndependentBlocks (initialization): time 0.001475/1.297, allocations: 0.8007 MB / 1.084 GB, free: 8.809 MB / 0.698 GB Notification: Performance of analyzeInitialSystem (initialization): time 0.001247/1.298, allocations: 427.8 kB / 1.084 GB, free: 8.523 MB / 0.698 GB Notification: Performance of solveInitialSystemEqSystem (initialization): time 1.345e-05/1.298, allocations: 4 kB / 1.084 GB, free: 8.52 MB / 0.698 GB Notification: Performance of matching and sorting (n=197) (initialization): time 0.003751/1.302, allocations: 1.293 MB / 1.086 GB, free: 7.504 MB / 0.698 GB Notification: Performance of prepare postOptimizeDAE: time 4.138e-05/1.302, allocations: 8 kB / 1.086 GB, free: 7.496 MB / 0.698 GB Notification: Performance of postOpt simplifyComplexFunction (initialization): time 2.584e-05/1.302, allocations: 16.81 kB / 1.086 GB, free: 7.48 MB / 0.698 GB Notification: Performance of postOpt tearingSystem (initialization): time 5.03e-05/1.302, allocations: 19.95 kB / 1.086 GB, free: 7.461 MB / 0.698 GB Notification: Performance of postOpt solveSimpleEquations (initialization): time 0.001424/1.303, allocations: 206.8 kB / 1.086 GB, free: 7.27 MB / 0.698 GB Notification: Performance of postOpt calculateStrongComponentJacobians (initialization): time 3.587e-05/1.303, allocations: 27.92 kB / 1.086 GB, free: 7.242 MB / 0.698 GB Notification: Performance of postOpt simplifyAllExpressions (initialization): time 0.001629/1.305, allocations: 107.3 kB / 1.086 GB, free: 7.137 MB / 0.698 GB Notification: Performance of postOpt collapseArrayExpressions (initialization): time 0.0002441/1.305, allocations: 75.3 kB / 1.086 GB, free: 7.078 MB / 0.698 GB Notification: Model statistics after passing the back-end for initialization: * Number of independent subsystems: 46 * Number of states: 0 () * Number of discrete variables: 127 ($PRE.con.transition3.enableFire,$PRE.con.transition5.enableFire,$PRE.con.transition9.enableFire,$PRE.con.transition7.enableFire,$PRE.con.transition10.enableFire,$PRE.con.transition1.enableFire,$PRE.con.transition2.enableFire,$PRE.con.transition8.enableFire,$PRE.con.transition6.enableFire,$PRE.con.transition4.enableFire,$PRE.con.timer.yAcc,con.timer.yAcc,$whenCondition8,$PRE.PEle.tab.nextTimeEvent,$whenCondition7,$PRE.avaSig.combiTimeTable.nextTimeEvent,$whenCondition6,$PRE.runSig.combiTimeTable.nextTimeEvent,$whenCondition1,$PRE.mWat_flow.tab.nextTimeEvent,stateGraphRoot.resume,stateGraphRoot.suspend,$whenCondition5,$whenCondition3,$whenCondition4,$whenCondition2,conWat.opeMod,conWat.offStaBy.y,stateGraphRoot.activeSteps,mWat_flow.tab.nextTimeEvent,$PRE.mWat_flow.tab.nextTimeEventScaled,mWat_flow.tab.nextTimeEventScaled,con.runSig,$PRE.con.staBy.localActive,con.staBy.localActive,con.staBy.outPort[2].available,$PRE.con.staBy.newActive,con.staBy.newActive,$PRE.con.staBy.oldActive,con.staBy.oldActive,con.staBy.active,$PRE.con.pumOn.localActive,con.pumOn.localActive,con.pumOn.outPort[2].available,$PRE.con.pumOn.newActive,con.pumOn.newActive,$PRE.con.pumOn.oldActive,con.pumOn.oldActive,con.pumOn.active,$PRE.con.warUp.localActive,con.warUp.localActive,con.warUp.inPort[2].occupied,con.warUp.outPort[2].available,$PRE.con.warUp.newActive,con.warUp.newActive,$PRE.con.warUp.oldActive,con.warUp.oldActive,con.warUp.active,$PRE.con.cooDow.localActive,con.cooDow.localActive,con.cooDow.inPort[2].occupied,con.cooDow.outPort[2].available,$PRE.con.cooDow.newActive,con.cooDow.newActive,$PRE.con.cooDow.oldActive,con.cooDow.oldActive,con.cooDow.active,$PRE.con.hys.y,con.hys.y,con.and1.u2,con.and1.y,con.transition3.enableFire,con.transition5.enableFire,con.transition9.enableFire,con.transition7.enableFire,con.and3.y,con.transition10.enableFire,con.and4.u1,con.and4.u2,con.and4.y,con.assWatMas.assMes.u,$PRE.con.assWatMas.hys.y,con.assWatMas.hys.y,con.transition1.enableFire,con.transition2.enableFire,$PRE.con.nor.localActive,con.nor.localActive,$PRE.con.nor.newActive,con.nor.newActive,$PRE.con.nor.oldActive,con.nor.oldActive,con.nor.active,con.transition8.enableFire,$PRE.con.warUpCtr.hysTem.y,con.warUpCtr.hysTem.y,$PRE.con.warUpCtr.hysPow.y,con.warUpCtr.hysPow.y,$PRE.con.warUpCtr.pre.u,con.warUpCtr.pre.u,con.transition6.enableFire,$PRE.con.plaOff.localActive,con.plaOff.localActive,con.plaOff.inPort[2].occupied,con.plaOff.inPort[3].occupied,$PRE.con.plaOff.newActive,con.plaOff.newActive,$PRE.con.plaOff.oldActive,con.plaOff.oldActive,con.plaOff.active,con.transition4.enableFire,con.transition4.fire,$PRE.con.transition4.t_start,con.transition4.t_start,$PRE.con.timer.entryTime,con.timer.entryTime,runSig.combiTimeTable.nextTimeEvent,$PRE.runSig.combiTimeTable.nextTimeEventScaled,runSig.combiTimeTable.nextTimeEventScaled,avaSig.y,avaSig.combiTimeTable.nextTimeEvent,$PRE.avaSig.combiTimeTable.nextTimeEventScaled,avaSig.combiTimeTable.nextTimeEventScaled,PEle.tab.nextTimeEvent,$PRE.PEle.tab.nextTimeEventScaled,PEle.tab.nextTimeEventScaled,$PRE.con.timer.reset_internal,con.timer.reset_internal) * Number of discrete states: 0 () * Top-level inputs: 0 Notification: Strong component statistics for initialization (197): * Single equations (assignments): 197 * Array equations: 0 * Algorithm blocks: 0 * Record equations: 0 * When equations: 0 * If-equations: 0 * Equation systems (linear and non-linear blocks): 0 * Torn equation systems: 0 * Mixed (continuous/discrete) equation systems: 0 Notification: Performance of prepare postOptimizeDAE: time 0.0005238/1.306, allocations: 219.3 kB / 1.086 GB, free: 6.863 MB / 0.698 GB Notification: Performance of postOpt createAliasVarsForOutputStates (simulation): time 0.002526/1.308, allocations: 0.852 MB / 1.087 GB, free: 6.188 MB / 0.698 GB Notification: Performance of postOpt lateInlineFunction (simulation): time 0.0005594/1.309, allocations: 193.5 kB / 1.087 GB, free: 5.996 MB / 0.698 GB Notification: Performance of postOpt wrapFunctionCalls (simulation): time 0.003136/1.312, allocations: 1.001 MB / 1.088 GB, free: 5.266 MB / 0.698 GB Notification: Performance of postOpt inlineArrayEqn (simulation): time 2.022e-05/1.312, allocations: 12 kB / 1.088 GB, free: 5.254 MB / 0.698 GB Notification: Performance of postOpt constantLinearSystem (simulation): time 9.818e-06/1.312, allocations: 4 kB / 1.088 GB, free: 5.25 MB / 0.698 GB Notification: Performance of postOpt simplifysemiLinear (simulation): time 1.636e-05/1.312, allocations: 3.984 kB / 1.088 GB, free: 5.246 MB / 0.698 GB Notification: Performance of postOpt removeSimpleEquations (simulation): time 0.007144/1.319, allocations: 2.513 MB / 1.091 GB, free: 3.039 MB / 0.698 GB Notification: Performance of postOpt simplifyComplexFunction (simulation): time 8.736e-06/1.319, allocations: 4 kB / 1.091 GB, free: 3.035 MB / 0.698 GB Notification: Performance of postOpt solveSimpleEquations (simulation): time 0.0006496/1.32, allocations: 75.83 kB / 1.091 GB, free: 2.961 MB / 0.698 GB Notification: Performance of postOpt tearingSystem (simulation): time 1.583e-05/1.32, allocations: 8 kB / 1.091 GB, free: 2.953 MB / 0.698 GB Notification: Performance of postOpt inputDerivativesUsed (simulation): time 0.0001035/1.32, allocations: 19.97 kB / 1.091 GB, free: 2.934 MB / 0.698 GB Notification: Performance of postOpt calculateStrongComponentJacobians (simulation): time 9.418e-06/1.32, allocations: 4 kB / 1.091 GB, free: 2.93 MB / 0.698 GB Notification: Performance of postOpt calculateStateSetsJacobians (simulation): time 4.398e-06/1.32, allocations: 3.938 kB / 1.091 GB, free: 2.926 MB / 0.698 GB Notification: Performance of postOpt symbolicJacobian (simulation): time 0.00287/1.323, allocations: 1.051 MB / 1.092 GB, free: 1.855 MB / 0.698 GB Notification: Performance of postOpt removeConstants (simulation): time 0.001139/1.324, allocations: 394.4 kB / 1.092 GB, free: 1.449 MB / 0.698 GB Notification: Performance of postOpt simplifyTimeIndepFuncCalls (simulation): time 0.000355/1.325, allocations: 16 kB / 1.092 GB, free: 1.434 MB / 0.698 GB Notification: Performance of postOpt simplifyAllExpressions (simulation): time 0.000999/1.326, allocations: 55.94 kB / 1.092 GB, free: 1.379 MB / 0.698 GB Notification: Performance of postOpt findZeroCrossings (simulation): time 0.0005846/1.326, allocations: 157.1 kB / 1.093 GB, free: 1.223 MB / 0.698 GB Notification: Performance of postOpt collapseArrayExpressions (simulation): time 0.0001539/1.326, allocations: 47.97 kB / 1.093 GB, free: 1.176 MB / 0.698 GB Notification: Performance of sorting global known variables: time 0.003052/1.33, allocations: 1.207 MB / 1.094 GB, free: 15.95 MB / 0.7136 GB Notification: Performance of sort global known variables: time 1.463e-06/1.33, allocations: 4 kB / 1.094 GB, free: 15.94 MB / 0.7136 GB Notification: Performance of remove unused functions: time 0.002098/1.332, allocations: 295.6 kB / 1.094 GB, free: 15.65 MB / 0.7136 GB Notification: Model statistics after passing the back-end for simulation: * Number of independent subsystems: 1 * Number of states: 0 () * Number of discrete variables: 90 (con.transition4.enableFire,con.plaOff.active,con.nor.active,con.cooDow.active,con.cooDow.localActive,con.warUp.active,con.pumOn.active,con.staBy.active,$cse4,$cse5,$cse6,$cse7,$cse8,$cse9,$cse10,$cse11,$cse12,$cse13,$cse14,$whenCondition8,$whenCondition7,$whenCondition6,$whenCondition5,$whenCondition3,$whenCondition4,$whenCondition2,$whenCondition1,conWat.opeMod,conWat.offStaBy.y,stateGraphRoot.activeSteps,mWat_flow.tab.nextTimeEvent,mWat_flow.tab.nextTimeEventScaled,con.runSig,con.staBy.localActive,con.staBy.outPort[2].available,con.staBy.newActive,con.staBy.oldActive,con.pumOn.localActive,con.pumOn.outPort[2].available,con.pumOn.newActive,con.pumOn.oldActive,con.warUp.localActive,con.warUp.inPort[2].occupied,con.warUp.outPort[2].available,con.warUp.newActive,con.warUp.oldActive,con.cooDow.inPort[2].occupied,con.cooDow.outPort[2].available,con.cooDow.newActive,con.cooDow.oldActive,con.hys.y,con.and1.u2,con.and1.y,con.transition3.enableFire,con.transition5.enableFire,con.transition9.enableFire,con.transition7.enableFire,con.and3.y,con.transition10.enableFire,con.and4.u1,con.and4.u2,con.and4.y,con.assWatMas.assMes.u,con.assWatMas.hys.y,con.transition1.enableFire,con.transition2.enableFire,con.nor.localActive,con.nor.newActive,con.nor.oldActive,con.transition8.enableFire,con.warUpCtr.hysTem.y,con.warUpCtr.hysPow.y,con.warUpCtr.pre.u,con.transition6.enableFire,con.plaOff.localActive,con.plaOff.inPort[2].occupied,con.plaOff.inPort[3].occupied,con.plaOff.newActive,con.plaOff.oldActive,con.transition4.fire,con.transition4.t_start,con.timer.entryTime,con.timer.yAcc,runSig.combiTimeTable.nextTimeEvent,runSig.combiTimeTable.nextTimeEventScaled,avaSig.y,avaSig.combiTimeTable.nextTimeEvent,avaSig.combiTimeTable.nextTimeEventScaled,PEle.tab.nextTimeEvent,PEle.tab.nextTimeEventScaled) * Number of discrete states: 20 (PEle.tab.nextTimeEvent,avaSig.combiTimeTable.nextTimeEvent,runSig.combiTimeTable.nextTimeEvent,mWat_flow.tab.nextTimeEvent,con.staBy.newActive,con.pumOn.newActive,con.warUp.newActive,con.cooDow.newActive,con.nor.newActive,con.warUpCtr.pre.u,con.plaOff.newActive,con.warUpCtr.hysTem.y,PEle.tab.nextTimeEventScaled,con.warUpCtr.hysPow.y,avaSig.combiTimeTable.nextTimeEventScaled,runSig.combiTimeTable.nextTimeEventScaled,con.timer.y,mWat_flow.tab.nextTimeEventScaled,con.assWatMas.hys.y,con.hys.y) * Top-level inputs: 0 Notification: Strong component statistics for simulation (118): * Single equations (assignments): 101 * Array equations: 0 * Algorithm blocks: 0 * Record equations: 0 * When equations: 17 * If-equations: 0 * Equation systems (linear and non-linear blocks): 0 * Torn equation systems: 0 * Mixed (continuous/discrete) equation systems: 0 Notification: Performance of Backend phase and start with SimCode phase: time 0.004978/1.337, allocations: 1.986 MB / 1.096 GB, free: 13.73 MB / 0.7136 GB Notification: Performance of simCode: created initialization part: time 0.002985/1.34, allocations: 1.007 MB / 1.097 GB, free: 12.73 MB / 0.7136 GB Notification: Performance of simCode: created event and clocks part: time 5.982e-06/1.34, allocations: 3.938 kB / 1.097 GB, free: 12.73 MB / 0.7136 GB Notification: Performance of simCode: created simulation system equations: time 0.001217/1.341, allocations: 464.9 kB / 1.097 GB, free: 12.27 MB / 0.7136 GB Notification: Performance of simCode: created of all other equations (e.g. parameter, nominal, assert, etc): time 0.002173/1.343, allocations: 251.1 kB / 1.098 GB, free: 12.03 MB / 0.7136 GB Notification: Performance of simCode: created linear, non-linear and system jacobian parts: time 0.009503/1.353, allocations: 2.773 MB / 1.1 GB, free: 9.207 MB / 0.7136 GB Notification: Performance of simCode: some other stuff during SimCode phase: time 0.001938/1.355, allocations: 1.527 MB / 1.102 GB, free: 7.645 MB / 0.7136 GB Notification: Performance of simCode: alias equations: time 0.001766/1.357, allocations: 301.6 kB / 1.102 GB, free: 7.344 MB / 0.7136 GB Notification: Performance of simCode: all other stuff during SimCode phase: time 0.002188/1.359, allocations: 0.8194 MB / 1.103 GB, free: 6.523 MB / 0.7136 GB Notification: Performance of SimCode: time 1.383e-06/1.359, allocations: 0 / 1.103 GB, free: 6.523 MB / 0.7136 GB Notification: Performance of buildModelFMU: Generate the FMI files: time 0.1525/1.511, allocations: 34.28 MB / 1.136 GB, free: 4.34 MB / 0.7448 GB Notification: Performance of buildModelFMU: configured platform static using cached values: time 0.0003714/1.512, allocations: 192.3 kB / 1.137 GB, free: 4.137 MB / 0.7448 GB Notification: Performance of buildModelFMU: Generate platform static: time 4.192/5.704, allocations: 0 / 1.137 GB, free: 4.137 MB / 0.7448 GB