diff --git a/NonLinearSolver/internalPoints/ipAnisotropicPlasticity.h b/NonLinearSolver/internalPoints/ipAnisotropicPlasticity.h
new file mode 100644
index 0000000000000000000000000000000000000000..be8ee5acad399a47ed431a42aac725b3b365d7ed
--- /dev/null
+++ b/NonLinearSolver/internalPoints/ipAnisotropicPlasticity.h
@@ -0,0 +1,36 @@
+//
+// C++ Interface: ipd data
+//
+// Description: ip data for plastic anisotropy
+//
+// Author:  <V.D. Nguyen>, (C) 2023
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+
+#ifndef IPANISOTROPICPLASTICITY_H_
+#define IPANISOTROPICPLASTICITY_H_
+
+#include "ipJ2linear.h"
+
+class IPAnisotropicPlasticity : public IPJ2linear 
+{
+  public:
+    IPAnisotropicPlasticity(): IPJ2linear(){};
+    IPAnisotropicPlasticity(const J2IsotropicHardening *j2IH): IPJ2linear(j2IH){};
+    IPAnisotropicPlasticity(const IPAnisotropicPlasticity &source): IPJ2linear(source){};
+    virtual IPAnisotropicPlasticity& operator=(const IPVariable &source)
+    {
+      IPJ2linear::operator =(source);
+      return *this;
+    }
+    virtual ~IPAnisotropicPlasticity()
+    {
+      
+    }
+    virtual IPVariable* clone() const {return new IPAnisotropicPlasticity(*this);};
+};
+
+
+#endif //IPANISOTROPICPLASTICITY_H_
\ No newline at end of file
diff --git a/NonLinearSolver/materialLaw/CMakeLists.txt b/NonLinearSolver/materialLaw/CMakeLists.txt
index d7735fd86b97cab255055e99786ff7e878405bc8..b7f88e9719f32d64b63afefb8b53e84016492561 100644
--- a/NonLinearSolver/materialLaw/CMakeLists.txt
+++ b/NonLinearSolver/materialLaw/CMakeLists.txt
@@ -106,6 +106,7 @@ set(SRC
   mlawNonLinearTVP.cpp
   mullinsEffect.cpp
   mlawHyperelasticWithPotential.cpp
+  mlawAnisotropicPlasticity.cpp
   #  src/op_eshelby.cpp
    # Headers without cpp change this ??
   ID.h
diff --git a/NonLinearSolver/materialLaw/mlaw.h b/NonLinearSolver/materialLaw/mlaw.h
index 7e69287869783cb50447f86b446f0f213e733673..9bafeb7b273811fd71aaeea2a136f16a88af5162 100644
--- a/NonLinearSolver/materialLaw/mlaw.h
+++ b/NonLinearSolver/materialLaw/mlaw.h
@@ -24,7 +24,7 @@ class materialLaw{
 
 
     enum matname{linearElasticPlaneStress,linearElasticPlaneStressWithDamage, linearElasticOrthotropicPlaneStress,
-                 cohesiveLaw, fracture, nonLinearShell, j2linear, viscoelastic, EOS, transverseIsotropic, transverseIsoCurvature, transverseIsoUserDirection,
+                 cohesiveLaw, fracture, nonLinearShell, J2, viscoelastic, EOS, transverseIsotropic, transverseIsoCurvature, transverseIsoUserDirection,
                  transverseIsoYarnB, Anisotropic, AnisotropicStoch, nonLocalDamage, vumat, UMATInterface, crystalPlasticity, gursonUMAT,
                  numeric, secondOrderElastic, j2smallstrain, porousPlasticDamagelaw,
                  nonLocalDamageGurson, nonLocalDamageThomason, nonLocalDamageGursonThomason,
@@ -35,7 +35,7 @@ class materialLaw{
                  ThermalConducter,AnIsotropicTherMech, localDamageJ2Hyper,linearElastic,nonLocalDamageGursonThermoMechanics,
                  localDamageJ2SmallStrain,nonLocalDamageJ2SmallStrain,cluster,tfa,ANN, DMN, torchANN, NonlocalDamageTorchANN, LinearElecMagTherMech, LinearElecMagInductor, hyperviscoelastic,
                  GenericThermoMechanics, ElecMagGenericThermoMechanics, ElecMagInductor,
-                 nonlineartvm,nonlinearTVE,nonlinearTVP,vevpmfh, VEVPUMAT};
+                 nonlineartvm,nonlinearTVE,nonlinearTVP,vevpmfh, VEVPUMAT, Hill48};
 
 
  protected :
diff --git a/NonLinearSolver/materialLaw/mlawAnisotropicPlasticity.cpp b/NonLinearSolver/materialLaw/mlawAnisotropicPlasticity.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..5be0bbce061d2a4c57985d67061544e9f6cddcfe
--- /dev/null
+++ b/NonLinearSolver/materialLaw/mlawAnisotropicPlasticity.cpp
@@ -0,0 +1,1182 @@
+//
+// C++ Interface: material law
+//
+// Description: material law for plastic anisotropy
+//
+// Author:  <V.D. Nguyen>, (C) 2023
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "mlawAnisotropicPlasticity.h"
+#include "nonLinearMechSolver.h"
+
+mlawAnisotropicPlasticity::mlawAnisotropicPlasticity(const int num,const double E,const double nu, const double rho,const J2IsotropicHardening &j2IH,
+                           const double tol, const bool pert, const double eps) : materialLaw(num,true), _E(E), _nu(nu), _rho(rho),
+                                               _lambda((E*nu)/(1.+nu)/(1.-2.*nu)),
+                                               _mu(0.5*E/(1.+nu)),_K(E/3./(1.-2.*nu)), _K3(3.*_K), _mu3(3.*_mu),
+                                               _mu2(2.*_mu), _tol(tol), _maxite(1000),_perturbationfactor(eps),_tangentByPerturbation(pert),_order(1),
+                                                _stressFormulation(CORO_KIRCHHOFF)
+{
+  _j2IH=j2IH.clone();
+
+  STensorOperation::zero(_Cel);
+  _Cel(0,0,0,0) = _lambda + _mu2;
+  _Cel(1,1,0,0) = _lambda;
+  _Cel(2,2,0,0) = _lambda;
+  _Cel(0,0,1,1) = _lambda;
+  _Cel(1,1,1,1) = _lambda + _mu2;
+  _Cel(2,2,1,1) = _lambda;
+  _Cel(0,0,2,2) = _lambda;
+  _Cel(1,1,2,2) = _lambda;
+  _Cel(2,2,2,2) = _lambda + _mu2;
+
+  _Cel(1,0,1,0) = _mu;
+  _Cel(2,0,2,0) = _mu;
+  _Cel(0,1,0,1) = _mu;
+  _Cel(2,1,2,1) = _mu;
+  _Cel(0,2,0,2) = _mu;
+  _Cel(1,2,1,2) = _mu;
+
+  _Cel(0,1,1,0) = _mu;
+  _Cel(0,2,2,0) = _mu;
+  _Cel(1,0,0,1) = _mu;
+  _Cel(1,2,2,1) = _mu;
+  _Cel(2,0,0,2) = _mu;
+  _Cel(2,1,1,2) = _mu;
+  
+   STensor3 I(1.);
+  for (int i=0; i<3; i++){
+    for (int j=0; j<3; j++){
+      for (int k=0; k<3; k++){
+        for (int l=0; l<3; l++){
+          _I4(i,j,k,l) = 0.5*(I(i,k)*I(j,l)+I(i,l)*I(j,k));
+          _I4dev(i,j,k,l) = 0.5*(I(i,k)*I(j,l)+I(i,l)*I(j,k)) - I(i,j)*I(k,l)/3.;
+        }
+      }
+    }
+  }
+}
+mlawAnisotropicPlasticity::mlawAnisotropicPlasticity(const mlawAnisotropicPlasticity &source) : materialLaw(source),_E(source._E), _nu(source._nu), _rho(source._rho),
+                                                         _lambda(source._lambda),
+                                                         _mu(source._mu), _K(source._K),_K3(source._K3), _mu3(source._mu3),
+                                                         _mu2(source._mu2), _tol(source._tol), _maxite(source._maxite),
+                                                         _perturbationfactor(source._perturbationfactor),
+                                                         _tangentByPerturbation(source._tangentByPerturbation),_order(source._order),
+                                                         _Cel(source._Cel),
+                                                         _stressFormulation(source._stressFormulation),
+                                                         _I4(source._I4), _I4dev(source._I4dev)
+{
+	_j2IH = NULL;
+  if(source._j2IH != NULL)
+  {
+    _j2IH=source._j2IH->clone();
+  }
+}
+
+mlawAnisotropicPlasticity& mlawAnisotropicPlasticity::operator=(const materialLaw &source)
+{
+  materialLaw::operator=(source);
+  const mlawAnisotropicPlasticity* src =static_cast<const mlawAnisotropicPlasticity*>(&source);
+  if(src != NULL)
+  {
+    _E = src->_E;
+    _nu = src->_nu;
+    _rho = src->_rho;
+    _lambda = src->_lambda;
+    _mu = src->_mu;
+    _K = src->_K;
+    _K3 = src->_K3;
+    _mu3 = src->_mu3;
+    _mu2 = src->_mu2;
+    _tol = src->_tol;
+    _maxite = src->_maxite;
+    _perturbationfactor = src->_perturbationfactor;
+    _tangentByPerturbation = src->_tangentByPerturbation;
+    _Cel = src->_Cel;
+    _stressFormulation  = src->_stressFormulation;
+    _I4 = src->_I4;
+    _I4dev = src->_I4dev;
+    if(_j2IH != NULL) delete _j2IH;
+    if(src->_j2IH != NULL)
+    {
+      _j2IH=src->_j2IH->clone();
+    }
+
+  }
+  return *this;
+}
+
+mlawAnisotropicPlasticity::~mlawAnisotropicPlasticity()
+{
+  if(_j2IH!=NULL) {delete _j2IH; _j2IH = NULL;};
+}
+
+
+
+void mlawAnisotropicPlasticity::setStressFormulation(int s)
+{
+  _stressFormulation = (stressFormulation)s;
+  if (_stressFormulation == CORO_CAUCHY)
+  {
+    Msg::Info("The corotational cauchy stress is used");
+  }
+  else if (_stressFormulation == CORO_KIRCHHOFF)
+  {
+    Msg::Info("The corotational Kirchoff stress is used");
+  }
+  else
+  {
+    Msg::Error("The formulation %d is not implemented, using corotational Kirchoff instead");
+    _stressFormulation = CORO_KIRCHHOFF;
+  }
+}
+
+void mlawAnisotropicPlasticity::createIPState(IPStateBase* &ips,bool hasBodyForce,const bool* state_,const MElement *ele, const int nbFF_, const IntPt *GP, const int gpt) const
+{
+  //bool inter=true;
+  //const MInterfaceElement *iele = static_cast<const MInterfaceElement*>(ele);
+  //if(iele==NULL) inter=false;
+  IPVariable* ipvi = new IPAnisotropicPlasticity(_j2IH);
+  IPVariable* ipv1 = new IPAnisotropicPlasticity(_j2IH);
+  IPVariable* ipv2 = new IPAnisotropicPlasticity(_j2IH);
+  if(ips != NULL) delete ips;
+  ips = new IP3State(state_,ipvi,ipv1,ipv2);
+}
+
+double mlawAnisotropicPlasticity::soundSpeed() const
+{
+  double factornu = (1.-_nu)/((1.+_nu)*(1.-2.*_nu));
+  return sqrt(_E*factornu/_rho);
+}
+
+
+
+double mlawAnisotropicPlasticity::deformationEnergy(const STensor3 &C) const
+{
+  STensor3 logCdev;
+  bool ok=STensorOperation::logSTensor3(C,_order,logCdev,NULL);
+  double trace = logCdev.trace();
+
+  double lnJ = 0.5*trace;
+  logCdev(0,0)-=trace/3.;
+  logCdev(1,1)-=trace/3.;
+  logCdev(2,2)-=trace/3.;
+
+  double Psy = _K*0.5*lnJ*lnJ+_mu*0.25*dot(logCdev,logCdev);
+  return Psy;;
+}
+
+
+
+void mlawAnisotropicPlasticity::computeResidual(const STensor3& DeltaEp, std::vector<double>& DeltaPlasticMult, const double DeltaHatP, // unknown value 
+                                        const STensor3& sig,  const double R, 
+                                        const IPAnisotropicPlasticity* q0, const IPAnisotropicPlasticity* q1, 
+                                        std::vector<double>& res0, STensor3& res1, double& res2,  
+                                        bool stiff, 
+                                        const STensor43& DsigDDeltaEp, const double H,
+                                        std::vector<STensor3>& Dres0DDeltaEp, STensor43& Dres1DDeltaEp, STensor3& Dres2DDeltaEp,
+                                        std::vector<double>& Dres0DDeltaPlasticMult, std::vector<STensor3>& Dres1DDeltaPlasticMult, std::vector<double>& Dres2DDeltaPlasticMult,
+                                        std::vector<double>& Dres0DDeltaHatP, STensor3& Dres1DDeltaHatP, double& Dres2DDeltaHatP) const
+{
+  int numberYield = getNumOfYieldSurfaces();
+  double R0 = _j2IH->getYield0();
+  static std::vector<STensor3> DyieldDsig(numberYield,STensor3(0.)) ;
+  static std::vector<double> DyieldDR(numberYield, 0);
+  yieldFunction(res0,sig,R,q0,q1,stiff,&DyieldDsig,&DyieldDR);
+  
+  static std::vector<STensor3> Np(numberYield,STensor3(0.));
+  static std::vector<STensor43> DNpDsig(numberYield,STensor43(0.));
+  static std::vector<STensor3> DNpDR(numberYield, STensor3(0.));
+  getYieldNormal(Np,sig,R,q0,q1,stiff,&DNpDsig,&DNpDR);
+    
+  // plastic energy balance
+  res1 = DeltaEp;
+  for (int i=0; i< numberYield; i++)
+  {
+    res1.daxpy(Np[i],-DeltaPlasticMult[i]);
+  }
+  //
+  res2 = (STensorOperation::doubledot(sig,DeltaEp) - R*DeltaHatP)/R0;
+  //
+  if (stiff)
+  {
+    // res0
+    for (int i=0; i< numberYield; i++)
+    {
+      STensorOperation::multSTensor3STensor43(DyieldDsig[i],DsigDDeltaEp,Dres0DDeltaEp[i]);
+      Dres0DDeltaPlasticMult[i] = 0.;
+      Dres0DDeltaHatP[i] = DyieldDR[i]*H;
+    }
+    // res1
+    Dres1DDeltaEp = _I4;
+    STensorOperation::zero(Dres1DDeltaHatP);
+    for (int i=0; i< numberYield; i++)
+    {
+      STensorOperation::multSTensor43Add(DNpDsig[i],DsigDDeltaEp,-DeltaPlasticMult[i],Dres1DDeltaEp);
+      Dres1DDeltaPlasticMult[i] = Np[i];
+      Dres1DDeltaPlasticMult[i] *= (-1.);
+      Dres1DDeltaHatP.daxpy(DNpDR[i],-DeltaPlasticMult[i]*H);
+    }
+    
+    // res2
+    STensorOperation::scale(sig,1./R0,Dres2DDeltaEp);
+    STensorOperation::multSTensor3STensor43Add(DeltaEp,DsigDDeltaEp,1./R0,Dres2DDeltaEp);
+    for (int i=0; i< numberYield; i++)
+    {
+      Dres2DDeltaPlasticMult[i] = 0.;
+    }
+    Dres2DDeltaHatP = -(R+H*DeltaHatP)/R0;
+  }
+};
+
+void mlawAnisotropicPlasticity::computeDResidual(const STensor3& DeltaEp, const std::vector<double>& DeltaPlasticMult, const double DeltaHatP, // unknown value 
+                                  const STensor3& sig, const double R,  const IPAnisotropicPlasticity* q0, const IPAnisotropicPlasticity* q1,
+                                  const STensor43& DsigDEepr, const double H, 
+                                  std::vector<STensor3>& Dres0DEepr, STensor43& Dres1DEepr, STensor3& Dres2DEepr) const
+{
+  int numberYield = getNumOfYieldSurfaces();
+  double R0 = _j2IH->getYield0();
+  
+  static std::vector<double> yf(numberYield,0.);
+  static std::vector<STensor3> DyieldDsig(numberYield,STensor3(0.)) ;
+  static std::vector<double> DyieldDR(numberYield, 0);
+  yieldFunction(yf,sig,R,q0,q1,true,&DyieldDsig,&DyieldDR);
+  for (int i=0;  i< numberYield; i++)
+  {
+    STensorOperation::multSTensor3STensor43(DyieldDsig[i],DsigDEepr,Dres0DEepr[i]);
+  }
+  
+  static std::vector<STensor3> Np(numberYield,STensor3(0.));
+  static std::vector<STensor43> DNpDsig(numberYield,STensor43(0.));
+  static std::vector<STensor3> DNpDR(numberYield, STensor3(0.));
+  getYieldNormal(Np,sig,R,q0,q1,true,&DNpDsig,&DNpDR);
+  STensorOperation::zero(Dres1DEepr);
+  for (int i=0;  i< numberYield; i++)
+  {
+    STensorOperation::multSTensor43Add(DNpDsig[i],DsigDEepr, -DeltaPlasticMult[i], Dres1DEepr);
+  }
+  // plastic energy balance
+  STensorOperation::multSTensor3STensor43(DeltaEp,DsigDEepr,Dres2DEepr);
+  Dres2DEepr *= (1./R0);
+}; 
+
+void mlawAnisotropicPlasticity::getResAndJacobian(fullVector<double>& res, fullMatrix<double>& J, 
+                                const std::vector<double>& res0, const STensor3& res1, const double& res2,
+                                const std::vector<STensor3>& Dres0DDeltaEp, const STensor43& Dres1DDeltaEp, const STensor3& Dres2DDeltaEp,
+                                const std::vector<double>& Dres0DDeltaPlasticMult, const std::vector<STensor3>& Dres1DDeltaPlasticMult, const std::vector<double>& Dres2DDeltaPlasticMult,
+                                const std::vector<double>& Dres0DDeltaHatP, const STensor3& Dres1DDeltaHatP,const double& Dres2DDeltaHatP) const{
+  // unknown DeltaEp, DeltaPlasticMult_i, DeltaHatP
+  // phi_i = 0, 
+  // DeltaEp - sum_i DeltaPlasticMult_i * N_i = 0,
+  // res2 = 0
+  
+  int numberYield = getNumOfYieldSurfaces();
+  if (res.size() != 7+numberYield){
+    res.resize(7+numberYield);
+    J.resize(7+numberYield,7+numberYield);
+  }
+  // residual
+  for (int i=0; i< numberYield; i++)
+  {
+    res(i) = res0[i];
+  }
+  res(numberYield) = res1(0,0);
+  res(numberYield+1) = res1(1,1);
+  res(numberYield+2) = res1(2,2);
+  res(numberYield+3) = res1(0,1);
+  res(numberYield+4) = res1(0,2);
+  res(numberYield+5) = res1(1,2);
+  res(numberYield+6) = res2;
+  
+  //
+  J.setAll(0.);
+  // jacobian for res0
+  for (int i=0; i< numberYield; i++)
+  {
+    J(i,0) = Dres0DDeltaEp[i](0,0);
+    J(i,1) = Dres0DDeltaEp[i](1,1);
+    J(i,2) = Dres0DDeltaEp[i](2,2);
+    J(i,3) = Dres0DDeltaEp[i](0,1)+Dres0DDeltaEp[i](1,0);
+    J(i,4) = Dres0DDeltaEp[i](0,2)+Dres0DDeltaEp[i](2,0);
+    J(i,5) = Dres0DDeltaEp[i](1,2)+Dres0DDeltaEp[i](2,1);
+    J(i,6+i) = Dres0DDeltaPlasticMult[i]; // no cross term in yield
+    J(i,6+numberYield) = Dres0DDeltaHatP[i];
+  }
+    
+  // jacobian for res1
+  J(numberYield,0) = Dres1DDeltaEp(0,0,0,0);
+  J(numberYield,1) = Dres1DDeltaEp(0,0,1,1);
+  J(numberYield,2) = Dres1DDeltaEp(0,0,2,2);
+  J(numberYield,3) = Dres1DDeltaEp(0,0,0,1)+Dres1DDeltaEp(0,0,1,0);
+  J(numberYield,4) = Dres1DDeltaEp(0,0,0,2)+Dres1DDeltaEp(0,0,2,0);
+  J(numberYield,5) = Dres1DDeltaEp(0,0,1,2)+Dres1DDeltaEp(0,0,2,1);
+  for (int i=0; i< numberYield; i++)
+  {
+    J(numberYield,6+i) = Dres1DDeltaPlasticMult[i](0,0);
+  }
+  J(numberYield,6+numberYield) = Dres1DDeltaHatP(0,0);
+  
+  J(numberYield+1,0) = Dres1DDeltaEp(1,1,0,0);
+  J(numberYield+1,1) = Dres1DDeltaEp(1,1,1,1);
+  J(numberYield+1,2) = Dres1DDeltaEp(1,1,2,2);
+  J(numberYield+1,3) = Dres1DDeltaEp(1,1,0,1)+Dres1DDeltaEp(1,1,1,0);
+  J(numberYield+1,4) = Dres1DDeltaEp(1,1,0,2)+Dres1DDeltaEp(1,1,2,0);
+  J(numberYield+1,5) = Dres1DDeltaEp(1,1,1,2)+Dres1DDeltaEp(1,1,2,1);
+  for (int i=0; i< numberYield; i++)
+  {
+    J(numberYield+1,6+i) = Dres1DDeltaPlasticMult[i](1,1);
+  }
+  J(numberYield+1,6+numberYield) = Dres1DDeltaHatP(1,1);
+  
+  J(numberYield+2,0) = Dres1DDeltaEp(2,2,0,0);
+  J(numberYield+2,1) = Dres1DDeltaEp(2,2,1,1);
+  J(numberYield+2,2) = Dres1DDeltaEp(2,2,2,2);
+  J(numberYield+2,3) = Dres1DDeltaEp(2,2,0,1)+Dres1DDeltaEp(2,2,1,0);
+  J(numberYield+2,4) = Dres1DDeltaEp(2,2,0,2)+Dres1DDeltaEp(2,2,2,0);
+  J(numberYield+2,5) = Dres1DDeltaEp(2,2,1,2)+Dres1DDeltaEp(2,2,2,1);
+  for (int i=0; i< numberYield; i++)
+  {
+    J(numberYield+2,6+i) = Dres1DDeltaPlasticMult[i](2,2);
+  }
+  J(numberYield+2,6+numberYield) = Dres1DDeltaHatP(2,2);
+  
+  J(numberYield+3,0) = Dres1DDeltaEp(0,1,0,0);
+  J(numberYield+3,1) = Dres1DDeltaEp(0,1,1,1);
+  J(numberYield+3,2) = Dres1DDeltaEp(0,1,2,2);
+  J(numberYield+3,3) = Dres1DDeltaEp(0,1,0,1)+Dres1DDeltaEp(0,1,1,0);
+  J(numberYield+3,4) = Dres1DDeltaEp(0,1,0,2)+Dres1DDeltaEp(0,1,2,0);
+  J(numberYield+3,5) = Dres1DDeltaEp(0,1,1,2)+Dres1DDeltaEp(0,1,2,1);
+  for (int i=0; i< numberYield; i++)
+  {
+    J(numberYield+3,6+i) = Dres1DDeltaPlasticMult[i](0,1);
+  }
+  J(numberYield+3,6+numberYield) = Dres1DDeltaHatP(0,1);
+  
+  J(numberYield+4,0) = Dres1DDeltaEp(0,2,0,0);
+  J(numberYield+4,1) = Dres1DDeltaEp(0,2,1,1);
+  J(numberYield+4,2) = Dres1DDeltaEp(0,2,2,2);
+  J(numberYield+4,3) = Dres1DDeltaEp(0,2,0,1)+Dres1DDeltaEp(0,2,1,0);
+  J(numberYield+4,4) = Dres1DDeltaEp(0,2,0,2)+Dres1DDeltaEp(0,2,2,0);
+  J(numberYield+4,5) = Dres1DDeltaEp(0,2,1,2)+Dres1DDeltaEp(0,2,2,1);
+  for (int i=0; i< numberYield; i++)
+  {
+    J(numberYield+4,6+i) = Dres1DDeltaPlasticMult[i](0,2);
+  }
+  J(numberYield+4,6+numberYield) = Dres1DDeltaHatP(0,2);
+  
+  J(numberYield+5,0) = Dres1DDeltaEp(1,2,0,0);
+  J(numberYield+5,1) = Dres1DDeltaEp(1,2,1,1);
+  J(numberYield+5,2) = Dres1DDeltaEp(1,2,2,2);
+  J(numberYield+5,3) = Dres1DDeltaEp(1,2,0,1)+Dres1DDeltaEp(1,2,1,0);
+  J(numberYield+5,4) = Dres1DDeltaEp(1,2,0,2)+Dres1DDeltaEp(1,2,2,0);
+  J(numberYield+5,5) = Dres1DDeltaEp(1,2,1,2)+Dres1DDeltaEp(1,2,2,1);
+  for (int i=0; i< numberYield; i++)
+  {
+    J(numberYield+5,6+i) = Dres1DDeltaPlasticMult[i](1,2);
+  }
+  J(numberYield+5,6+numberYield) = Dres1DDeltaHatP(1,2);
+  
+  // jacobian for res2
+  J(numberYield+6,0) = Dres2DDeltaEp(0,0);
+  J(numberYield+6,1) = Dres2DDeltaEp(1,1);
+  J(numberYield+6,2) = Dres2DDeltaEp(2,2);
+  J(numberYield+6,3) = Dres2DDeltaEp(0,1)+Dres2DDeltaEp(1,0);
+  J(numberYield+6,4) = Dres2DDeltaEp(0,2)+Dres2DDeltaEp(2,0);
+  J(numberYield+6,5) = Dres2DDeltaEp(1,2)+Dres2DDeltaEp(2,1);
+  for (int i=0; i< numberYield; i++)
+  {
+    J(numberYield+6,6+i) = Dres2DDeltaPlasticMult[i];
+  }
+  J(numberYield+6,6+numberYield) = Dres2DDeltaHatP;
+  
+  //res.print("res");
+  //J.print("jacobian");
+};
+
+bool mlawAnisotropicPlasticity::withPlastic(const STensor3& F, const STensor3& kcor, const double R, const IPAnisotropicPlasticity* q0, const IPAnisotropicPlasticity* q1) const
+{
+  int numberYield= getNumOfYieldSurfaces();
+  if (numberYield > 1)
+  {
+    Msg::Error("multiple yield surface does not implemented in mlawAnisotropicPlasticity");
+  }
+  std::vector<double> yf(numberYield, 0);
+  if (_stressFormulation == CORO_KIRCHHOFF)
+  {
+    yieldFunction(yf, kcor, R, q0, q1);
+  }
+  else if (_stressFormulation == CORO_CAUCHY)
+  {
+    double J = STensorOperation::determinantSTensor3(F);
+    static STensor3 sig;
+    sig = kcor;
+    sig *= (1./J);
+    yieldFunction(yf, sig, R, q0, q1);
+  }
+  else
+  {
+    Msg::Error("stress formuation is not correctly defined in mlawAnisotropicPlasticity!!!");
+    return false;
+  }
+  return *(std::min_element(yf.begin(), yf.end())) > _tol; 
+}
+
+
+void mlawAnisotropicPlasticity::constitutive(const STensor3& F0,
+                                const STensor3& Fn,
+                                STensor3 &P,
+                                const IPVariable *q0,
+                                IPVariable *q1,
+                                STensor43 &Tangent,
+                                const bool stiff,
+                                STensor43* elasticTangent, 
+                                const bool dTangent,
+                                STensor63* dCalgdeps
+                                ) const
+{
+  const IPAnisotropicPlasticity* q0Ani= dynamic_cast<const IPAnisotropicPlasticity*>(q0);
+        IPAnisotropicPlasticity* q1Ani= dynamic_cast<IPAnisotropicPlasticity*>(q1);
+  static STensor43 dFpdF,dFedF;
+  static STensor3 dpdF;
+  bool ok = predictorCorector(F0,Fn,P,q0Ani,q1Ani,Tangent,dFpdF,dFedF,dpdF,stiff);
+}
+
+bool mlawAnisotropicPlasticity::predictorCorector(const STensor3& F0,         // initial deformation gradient (input @ time n)
+                            const STensor3& F,         // updated deformation gradient (input @ time n+1)
+                            STensor3 &P,                // updated 1st Piola-Kirchhoff stress tensor (output)
+                            const IPAnisotropicPlasticity *q0,       // array of initial internal variable
+                            IPAnisotropicPlasticity *q,             // updated array of internal variable (in ipvcur on output),
+                            STensor43& Tangent,         // mechanical tangents (output)
+                            STensor43& dFpdF, // plastic tangent
+                            STensor43& dFedF,
+                            STensor3& dpdF,
+                            const bool stiff
+                            ) const 
+{  
+  const STensor3& Fp0 = q0->getConstRefToFp();
+  STensor3& Fp = q->getRefToFp();
+
+  double& eps = q->getRefToEquivalentPlasticStrain();
+  const double& eps0  = q0->getConstRefToEquivalentPlasticStrain();
+  // elastic predictor
+  Fp = Fp0;
+  eps = eps0;
+  static STensor3 invFp0, Fepr;
+  STensorOperation::inverseSTensor3(Fp0,invFp0);
+  STensorOperation::multSTensor3(F,invFp0,Fepr);
+
+  static STensor3 Fpinv, Fe, Ce;
+  Fpinv = invFp0;
+  Fe = Fepr;
+  STensorOperation::multSTensor3FirstTranspose(Fe,Fe,Ce);
+  // compute strain by logarithmic operator
+  static STensor43 Lpr; // dlogCepr/dCepr
+  static STensor63 dLDCe; // ddlogCepr/ddCepr
+  static STensor3 Eepr; // 0.5*log(Cepr)
+  if (_order == 1)
+  {
+    bool ok=STensorOperation::logSTensor3(Ce,_order,Eepr,&Lpr);
+    if(!ok)
+    {
+       P(0,0) = P(1,1) = P(2,2) = sqrt(-1.);
+       return false; 
+    }
+  }
+  else
+  {
+    bool ok=STensorOperation::logSTensor3(Ce,_order,Eepr,&Lpr,&dLDCe);
+    if(!ok)
+    {
+       P(0,0) = P(1,1) = P(2,2) = sqrt(-1.);
+       return false; 
+    }
+  }
+  Eepr *= 0.5;
+
+  static STensor43 L; // dlogCe/dCe
+  L = Lpr; // equal to dlogCepr/dCepr
+
+  STensor3& Ee  = q->getRefToElasticDeformationTensor();
+  Ee = Eepr; // current elatic part of total strain
+
+  // compute corotational Kirchhoff stress
+  double pcorpr = _K*Ee.trace();
+  static STensor3 kcorpr, kcor; 
+  kcorpr = Ee.dev();
+  kcorpr *= (2.*_mu);
+  kcorpr(0,0) += pcorpr;
+  kcorpr(1,1) += pcorpr;
+  kcorpr(2,2) += pcorpr;
+
+  kcor = kcorpr;
+  
+  /* Test plasticity */
+  _j2IH->hardening(eps0, q0->getConstRefToIPJ2IsotropicHardening(),eps, q->getRefToIPJ2IsotropicHardening());
+  double R0 = _j2IH->getYield0();
+  double R   = q->getConstRefToIPJ2IsotropicHardening().getR();
+  double H    = q->getConstRefToIPJ2IsotropicHardening().getDR();
+  
+  int nyield = getNumOfYieldSurfaces();
+  static STensor43 DFpDDeltaEp;
+  static fullVector<double> res(7+nyield), sol(7+nyield);
+  static fullMatrix<double> Jac(7+nyield,7+nyield);
+  double detF = 1.;
+  double detFinv = 1.;
+  
+  static STensor3 DeltaEp;
+  STensorOperation::zero(DeltaEp);
+  static std::vector<double> DeltaPlasticMult(nyield);
+  for (int i=0; i< nyield; i++)
+  {
+    DeltaPlasticMult[i] = 0.;
+  }
+  double DeltaHatP = 0;
+  
+  static STensor3 sig;
+  static STensor43 DsigDDeltaEp;
+  sig = kcor;
+  DsigDDeltaEp = _Cel;
+  DsigDDeltaEp *= (-1.);
+  if (_stressFormulation == CORO_CAUCHY)
+  {
+    // update with deformation Jacobian
+    detF = STensorOperation::determinantSTensor3(F);
+    detFinv = 1./detF;
+    sig *= detFinv;
+    DsigDDeltaEp *= detFinv;
+  }
+  
+  
+  if (q->dissipationIsBlocked())
+  {
+    q->getRefToDissipationActive() = false;
+  }
+  else
+  {
+    // corotational stress
+    if (withPlastic(F,kcor,R,q0,q))
+    {
+      // plastic occurs
+      q->getRefToDissipationActive() = true;
+      // plastic corrector
+      // unknowns
+      
+      
+                                                  
+      // static data
+      static std::vector<double> res0(nyield);
+      static std::vector<STensor3> Dres0DDeltaEp(nyield);
+      static std::vector<double> Dres0DDeltaPlasticMult(nyield);
+      static std::vector<double> Dres0DDeltaHatP(nyield);
+      
+      static STensor3 res1;
+      static STensor43 Dres1DDeltaEp;
+      static std::vector<STensor3> Dres1DDeltaPlasticMult(nyield);
+      static STensor3 Dres1DDeltaHatP;
+      
+      static double res2;
+      static STensor3 Dres2DDeltaEp;
+      static std::vector<double> Dres2DDeltaPlasticMult(nyield);
+      static double Dres2DDeltaHatP;
+      
+      computeResidual(DeltaEp,DeltaPlasticMult,DeltaHatP,sig,R,q0,q,
+            res0,res1,res2,
+            true,DsigDDeltaEp,H,
+            Dres0DDeltaEp,Dres1DDeltaEp,Dres2DDeltaEp,
+            Dres0DDeltaPlasticMult,Dres1DDeltaPlasticMult,Dres2DDeltaPlasticMult,
+            Dres0DDeltaHatP, Dres1DDeltaHatP,Dres2DDeltaHatP);
+            
+      // compute solution
+      getResAndJacobian(res,Jac,res0,res1,res2,
+                      Dres0DDeltaEp,Dres1DDeltaEp,Dres2DDeltaEp,
+                      Dres0DDeltaPlasticMult,Dres1DDeltaPlasticMult,Dres2DDeltaPlasticMult,
+                      Dres0DDeltaHatP,Dres1DDeltaHatP,Dres2DDeltaHatP);
+      //Jac.print("Jac");
+      int ite = 0;
+      double f = res.norm();
+      // Start iterations
+      //Msg::Info("plastic corrector iter=%d f=%e",ite,f);
+      while(f > _tol or ite <1)
+      {
+                                        
+        bool ok = Jac.luSolve(res,sol);
+        
+        if (!ok) 
+        {
+          Msg::Error("lu solve does not work in mlawAnisotropicPlasticity::predictorCorector!!!");
+          return false;
+        }
+        static STensor3 dDeltaEp; 
+        dDeltaEp(0,0) = sol(0);
+        dDeltaEp(1,1) = sol(1);
+        dDeltaEp(2,2) = sol(2);
+        dDeltaEp(0,1) = sol(3);
+        dDeltaEp(1,0) = sol(3);
+        dDeltaEp(0,2) = sol(4);
+        dDeltaEp(2,0) = sol(4);
+        dDeltaEp(1,2) = sol(5);
+        dDeltaEp(2,1) = sol(5);
+        
+        if (dDeltaEp.norm0() > 10.){
+          DeltaEp*=0.1;
+        }
+        else{
+          DeltaEp -= dDeltaEp;
+        }
+        
+        for (int i=0; i< nyield; i++)
+        {
+          if (DeltaPlasticMult[i]-sol(6+i) <0.){
+            DeltaPlasticMult[i] *=0.1;
+          }
+          else{
+            DeltaPlasticMult[i] -= sol(6+i);
+          }
+        }
+        
+        if (DeltaHatP-sol(6+nyield) < 0.){
+          DeltaHatP *= 0.1;
+        }
+        else{
+          DeltaHatP -= sol(6+nyield);
+        }
+      
+        // update Kcor
+        // Kcor = Kcorpr - H:DeltaEp
+        kcor = kcorpr;
+        STensorOperation::multSTensor43STensor3Add(_Cel,DeltaEp,-1.,kcor);
+        STensorOperation::scale(kcor,detFinv,sig);
+        
+        
+        eps = eps0 + DeltaHatP;
+        _j2IH->hardening(eps0, q0->getConstRefToIPJ2IsotropicHardening(),eps, q->getRefToIPJ2IsotropicHardening());
+        // update internal variables        
+        R = q->getConstRefToIPJ2IsotropicHardening().getR();
+        H = q->getConstRefToIPJ2IsotropicHardening().getDR();
+        
+        computeResidual(DeltaEp,DeltaPlasticMult,DeltaHatP,sig,R,q0,q,
+            res0,res1,res2,
+            true,DsigDDeltaEp,H,
+            Dres0DDeltaEp,Dres1DDeltaEp,Dres2DDeltaEp,
+            Dres0DDeltaPlasticMult,Dres1DDeltaPlasticMult,Dres2DDeltaPlasticMult,
+            Dres0DDeltaHatP, Dres1DDeltaHatP,Dres2DDeltaHatP);
+            
+        getResAndJacobian(res,Jac,res0,res1,res2,
+                        Dres0DDeltaEp,Dres1DDeltaEp,Dres2DDeltaEp,
+                        Dres0DDeltaPlasticMult,Dres1DDeltaPlasticMult,Dres2DDeltaPlasticMult,
+                        Dres0DDeltaHatP,Dres1DDeltaHatP,Dres2DDeltaHatP);
+        
+        f = res.norm();
+        //printf("iter = %d error = %e tol = %e \n ",ite,f,_tol);
+        if (f < _tol)  break;
+        
+        ite++;
+        if((ite > _maxite) or STensorOperation::isnan(f))
+        {
+          printf("no convergence for plastic correction  with ite = %d maxite = %d norm = %e !!!\n", ite,_maxite,f);
+          return false;
+        }
+      }
+      
+      // update plastic deformation
+       // Plastic increment
+      static STensor3 dFp;
+      static STensor43 Dexp;
+      // dFp = exp(DeltaEp)
+      STensorOperation::expSTensor3(DeltaEp,_order,dFp, &Dexp);
+      // Fp1 = dFp * Fp0
+      STensorOperation::multSTensor3(dFp,Fp0,Fp);
+      //
+      for (int i=0; i<3; i++)
+      {
+        for (int j=0; j<3; j++)
+        {
+          for (int p=0; p<3; p++)
+          {
+            for (int q=0; q<3; q++)
+            {
+              DFpDDeltaEp(i,j,p,q) = 0.;
+              for (int r=0; r<3; r++)
+              {
+                DFpDDeltaEp(i,j,p,q) += Dexp(i,r,p,q)*Fp0(r,j);
+              }
+            }
+          }
+        }
+      }
+      
+      // Fe = F * Fp^-1
+      STensorOperation::inverseSTensor3(Fp, Fpinv);
+      STensorOperation::multSTensor3(F,Fpinv,Fe);
+      // Ce = Fe^T * Fe
+      STensorOperation::multSTensor3FirstTranspose(Fe,Fe,Ce);
+      // Ee = ln(sqrt(Ce))
+      if (_order == 1)
+      {
+        bool ok=STensorOperation::logSTensor3(Ce,_order,Ee,&L);
+        if(!ok)
+        {
+           P(0,0) = P(1,1) = P(2,2) = sqrt(-1.);
+           return false; 
+        }
+      }
+      else
+      {
+        bool ok=STensorOperation::logSTensor3(Ce,_order,Ee,&L,&dLDCe);
+        if(!ok)
+        {
+           P(0,0) = P(1,1) = P(2,2) = sqrt(-1.);
+           return false; 
+        }
+      }
+      Ee *= 0.5;      
+    }
+    else
+    {
+      q->getRefToDissipationActive() = false;
+    }
+  }
+
+  // estimation of PK stress
+  static STensor3 S, FeS;
+  STensorOperation::multSTensor3STensor43(kcor,L,S);
+  STensorOperation::multSTensor3(Fe,S,FeS);
+  STensorOperation::multSTensor3SecondTranspose(FeS,Fpinv,P);
+
+  // elastic energy
+  q->getRefToElasticEnergy()= this->deformationEnergy(Ce);
+  // plastic energy
+  q->getRefToPlasticEnergy() = q0->plasticEnergy();
+  q->getRefToPlasticPower() = 0.;
+    // plastic power (Wp1- Wp0)/dt
+  if (eps-eps0 > 0.){
+    q->getRefToPlasticEnergy() += DeltaHatP*R;
+    q->getRefToPlasticPower() = DeltaHatP/this->getTimeStep();
+  }
+
+  // irreversible energy
+  if (this->getMacroSolver()->getPathFollowingLocalIncrementType() == pathFollowingManager::DEFO_ENERGY){
+    //
+    q->getRefToIrreversibleEnergy() = q->defoEnergy();
+  }
+  else if ((this->getMacroSolver()->getPathFollowingLocalIncrementType() == pathFollowingManager::PLASTIC_ENERGY) or
+           (this->getMacroSolver()->getPathFollowingLocalIncrementType() == pathFollowingManager::DISSIPATION_ENERGY)) {
+    q->getRefToIrreversibleEnergy() = q->plasticEnergy();
+  }
+  else{
+    q->getRefToIrreversibleEnergy() = 0.;
+  }
+  
+  if (stiff)
+  {
+    
+    if (_tangentByPerturbation)
+    {
+      static STensor3 plusF, plusP, plusFe, plusFpinv;
+      static STensor43 tmp43;
+      static IPAnisotropicPlasticity qTmp(*q0);
+
+      for (int k=0; k<3; k++){
+        for (int l=0; l<3; l++){
+          plusF = F;
+          plusF(k,l) += _perturbationfactor;
+          this->constitutive(F0,plusF,plusP,q0,&qTmp,tmp43,false);
+          STensorOperation::inverseSTensor3(qTmp._j2lepsp,plusFpinv);
+          STensorOperation::multSTensor3(plusF,plusFpinv,plusFe);
+
+          for (int i=0; i<3; i++){
+            for (int j=0; j<3; j++){
+              Tangent(i,j,k,l) = (plusP(i,j) - P(i,j))/_perturbationfactor;
+              dFpdF(i,j,k,l) = (qTmp._j2lepsp(i,j) - q->_j2lepsp(i,j))/_perturbationfactor;
+              dFedF(i,j,k,l) = (plusFe(i,j) - Fe(i,j))/_perturbationfactor;
+            }
+          }
+
+          dpdF(k,l) = (qTmp._j2lepspbarre - eps)/_perturbationfactor;
+          q->getRefToDIrreversibleEnergyDF()(k,l) = (qTmp.irreversibleEnergy() - q->irreversibleEnergy())/_perturbationfactor;
+        }
+      }
+
+      STensor3& dplasticpowerDF = q->getRefToDPlasticPowerDF();
+      dplasticpowerDF = dpdF;
+      dplasticpowerDF *= (R+H*(eps-eps0))/this->getTimeStep();
+    }
+    else
+    {
+      static STensor43 DKcorDEepr, DFpDEepr;
+      DKcorDEepr = _Cel;
+      STensorOperation::zero(DFpDEepr);
+      if (q->dissipationIsActive())
+      {
+        /* Compute internal variables derivatives from residual derivatives */
+        static std::vector<STensor3> Dres0DEepr(nyield);
+        static STensor43 Dres1DEepr;
+        static STensor3 Dres2DEepr;
+        
+        // Kcor = Kcorpr - Cel:DeltaEp, 
+        // DkcorDEepr = DKcorprDEepr
+        // sig = Kcor*invdetF
+        static STensor43 correctedDsigDEepr;
+        STensorOperation::scale(_Cel,detFinv,correctedDsigDEepr);
+        if (_stressFormulation == CORO_CAUCHY)
+        {
+          // J = Jepr*Jppr --> ln(J) = tr(Eepr) + ln(ppr) --> DJDEepr = J*I
+          static STensor3 DdetFDEepr;
+          STensorOperation::diag(DdetFDEepr,detF);
+          STensorOperation::prodAdd(kcor,DdetFDEepr,-detFinv*detFinv,correctedDsigDEepr);
+        }
+        computeDResidual(DeltaEp,DeltaPlasticMult,DeltaHatP,sig, R,q0,q,correctedDsigDEepr, H, 
+                        Dres0DEepr,Dres1DEepr,Dres2DEepr);
+                        
+        static STensor43 DDeltaEPDEepr;
+        static STensor3 DDeltaHatPDEepr;
+        
+        fullMatrix<double> invJac(8,8);
+        bool isInverted = Jac.invert(invJac);
+        if (!isInverted) 
+        {
+          Msg::Error("Jacobian cannot be inverted");
+          return false;
+        }
+        for(int i=0; i<3; i++)
+        {
+          for(int j=0; j<3; j++)
+          {
+            for (int k=0; k< nyield; k++)
+            {
+              res(k) = -Dres0DEepr[k](i,j);
+            }
+            res(nyield) = -Dres1DEepr(0,0,i,j);
+            res(nyield+1) = -Dres1DEepr(1,1,i,j); 
+            res(nyield+2) = -Dres1DEepr(2,2,i,j);
+            res(nyield+3) = -Dres1DEepr(0,1,i,j);
+            res(nyield+4) = -Dres1DEepr(0,2,i,j);
+            res(nyield+5) = -Dres1DEepr(1,2,i,j);
+            res(nyield+6) = -Dres2DEepr(i,j);
+            invJac.mult(res,sol);
+            DDeltaEPDEepr(0,0,i,j) = sol(0);
+            DDeltaEPDEepr(1,1,i,j) = sol(1);
+            DDeltaEPDEepr(2,2,i,j) = sol(2);
+            DDeltaEPDEepr(0,1,i,j) = sol(3);
+            DDeltaEPDEepr(1,0,i,j) = sol(3);
+            DDeltaEPDEepr(0,2,i,j) = sol(4);
+            DDeltaEPDEepr(2,0,i,j) = sol(4);
+            DDeltaEPDEepr(1,2,i,j) = sol(5);
+            DDeltaEPDEepr(2,1,i,j) = sol(5);
+            DDeltaHatPDEepr(i,j) = sol(6+nyield);
+          }
+        }
+        
+        // compute tangents
+        // kcor = kcorpr - H:DeltaEp 
+        
+        STensorOperation::multSTensor43Add(_Cel,DDeltaEPDEepr,-1.,DKcorDEepr);
+        // Fp = exp(DeltaEp)*Fp0
+        STensorOperation::multSTensor43(DFpDDeltaEp,DDeltaEPDEepr,DFpDEepr);
+        
+        // plastic energy DplasticEnegy = R*DeltaHatP
+        STensor3& DplasticEnergyDF = q->getRefToDPlasticEnergyDF();
+        STensorOperation::scale(DDeltaHatPDEepr,H*DeltaHatP+R,DplasticEnergyDF);
+      }
+    
+      static STensor43 EprToF;
+      for (int i=0; i<3; i++){
+        for (int j=0; j<3; j++){
+          for (int k=0; k<3; k++){
+            for (int l=0; l<3; l++){
+              EprToF(i,j,k,l) = 0.;
+              for (int p=0; p<3; p++){
+                for (int q=0; q<3; q++){
+                  EprToF(i,j,k,l) += Lpr(i,j,p,q)*Fepr(k,p)*invFp0(l,q);
+                }
+              }
+            }
+          }
+        }
+      }
+
+      tangentComputation(Tangent, q->dissipationIsActive(), F, kcor, S, Fepr, Fp0, Lpr,
+                        Fe, Fp, L, dLDCe,
+                        DKcorDEepr, DFpDEepr, EprToF, Fpinv);
+
+
+      //update tangent of plastic energy
+      static STensor3 DplEnergyDEpr;
+      DplEnergyDEpr = q->getConstRefToDPlasticEnergyDF();
+      STensor3& DplEnergyDF = q->getRefToDPlasticEnergyDF();
+      STensorOperation::multSTensor3STensor43(DplEnergyDEpr,EprToF,DplEnergyDF);
+
+      if (this->getMacroSolver()->withPathFollowing()){
+        // irreversible energy
+        if ((this->getMacroSolver()->getPathFollowingLocalIncrementType() == pathFollowingManager::PLASTIC_ENERGY) or
+                 (this->getMacroSolver()->getPathFollowingLocalIncrementType() == pathFollowingManager::DISSIPATION_ENERGY)) {
+          q->getRefToDIrreversibleEnergyDF() = q->getConstRefToDPlasticEnergyDF();
+        }
+        else{
+          Msg::Error("Path following method is only contructed with dissipation based on plastic energy");
+        }
+      };
+    }
+  }
+  return true;
+};
+
+
+void mlawAnisotropicPlasticity::tangentComputation(STensor43& dStressDF,
+                              const bool plastic,
+                              const STensor3& F,  // current F
+                              const STensor3& corKir,  // cor Kir
+                              const STensor3& S, //  second PK
+                              const STensor3& Fepr, const STensor3& Fppr, // predictor
+                              const STensor43& Lpr,
+                              const STensor3& Fe, const STensor3& Fp, // corrector
+                              const STensor43& L, const STensor63& dL, // corrector value
+                              const STensor43& DcorKirDEepr,
+                              const STensor43& dFpDEepr,
+                              const STensor43& EprToF, const STensor3& Fpinv
+                              ) const{
+  // P = Fe. (Kcor:Le) . invFp
+  // need to compute dFedF, dKcordF, dinvFpdF, dLedF
+
+  static STensor43 DcorKirDF, dFpdF;
+  STensorOperation::multSTensor43(DcorKirDEepr,EprToF,DcorKirDF);
+  if (plastic){
+    STensorOperation::multSTensor43(dFpDEepr,EprToF,dFpdF);
+  }
+  else{
+    STensorOperation::zero(dFpdF);
+  }
+
+  // done DcorKirDF, DFpDF
+
+  static STensor43 DinvFpdF;
+  STensorOperation::zero(DinvFpdF);
+  if (plastic){
+    for (int i=0; i<3; i++){
+      for (int j=0; j<3; j++){
+        for (int p=0; p<3; p++){
+          for (int q=0; q<3; q++){
+            for (int k=0; k<3; k++){
+              for (int l=0; l<3; l++){
+                DinvFpdF(i,j,k,l) -= Fpinv(i,p)*dFpdF(p,q,k,l)*Fpinv(q,j);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+
+  static STensor43 dFedF;
+  STensorOperation::zero(dFedF);
+  for (int i=0; i<3; i++){
+    for (int j=0; j<3; j++){
+      for (int k=0; k<3; k++){
+        dFedF(i,j,i,k) += Fpinv(k,j);
+        if (plastic){
+          for (int l=0; l<3; l++){
+            for (int p=0; p<3; p++){
+              dFedF(i,j,k,l) += F(i,p)*DinvFpdF(p,j,k,l);
+            }
+          }
+        }
+      }
+    }
+  }
+  static STensor63 DLDF;
+  STensorOperation::zero(DLDF);
+  for (int i=0; i<3; i++){
+    for (int j=0; j<3; j++){
+      for (int k=0; k<3; k++){
+        for (int l=0; l<3; l++){
+          for (int r=0; r<3; r++){
+            for (int s=0; s<3; s++){
+              for (int a=0; a<3; a++){
+                for (int p=0; p<3; p++){
+                  for (int q=0; q<3; q++){
+                    DLDF(i,j,k,l,p,q) += dL(i,j,k,l,r,s)*2.*Fe(a,r)*dFedF(a,s,p,q);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  //
+
+  static STensor43 DSDF; // S = corKir:L
+  STensorOperation::zero(DSDF);
+  for (int i=0; i<3; i++){
+    for (int j=0; j<3; j++){
+      for (int r=0; r<3; r++){
+        for (int s=0; s<3; s++){
+          for (int k=0; k<3; k++){
+            for (int l=0; l<3; l++){
+              DSDF(i,j,k,l) += DcorKirDF(r,s,k,l)*L(r,s,i,j) + corKir(r,s)*DLDF(r,s,i,j,k,l);
+            }
+          }
+        }
+      }
+    }
+  }
+
+
+  // compute mechanical tengent
+  STensorOperation::zero(dStressDF);
+  for (int i=0; i<3; i++){
+    for (int j=0; j<3; j++){
+      for (int k=0; k<3; k++){
+        for (int l=0; l<3; l++){
+          for (int p=0; p<3; p++){
+            for (int q=0; q<3; q++){
+              dStressDF(i,j,p,q) += (dFedF(i,k,p,q)*S(k,l)*Fpinv(j,l) + Fe(i,k)*DSDF(k,l,p,q)*Fpinv(j,l)+Fe(i,k)*S(k,l)*DinvFpdF(j,l,p,q));
+            }
+          }
+        }
+      }
+    }
+  }
+}
+
+
+mlawAnisotropicPlasticityJ2::mlawAnisotropicPlasticityJ2(const int num,const double E,const double nu, const double rho,const J2IsotropicHardening &_j2IH,const double tol,
+              const bool matrixbyPerturbation, const double pert):
+              mlawAnisotropicPlasticity(num, E, nu, rho, _j2IH, tol, matrixbyPerturbation,pert)
+{
+};
+mlawAnisotropicPlasticityJ2::mlawAnisotropicPlasticityJ2(const mlawAnisotropicPlasticityJ2 &source): mlawAnisotropicPlasticity(source){};
+mlawAnisotropicPlasticityJ2& mlawAnisotropicPlasticityJ2::operator=(const materialLaw &source)
+{
+  mlawAnisotropicPlasticity::operator =(source);
+  
+  return *this;
+}
+
+void mlawAnisotropicPlasticityJ2::yieldFunction(std::vector<double>& yf, const STensor3& sig, const double R, const IPAnisotropicPlasticity* q0, const IPAnisotropicPlasticity* q1,
+                                  bool diff, std::vector<STensor3>* DFDsig, std::vector<double>* DFDR) const
+{
+  double R0 = _j2IH->getYield0();
+  STensor3 s = sig.dev();
+  double sigEq = sqrt(1.5*s.dotprod());
+  yf.resize(1);
+  yf[0] = (sigEq - R)/R0;
+  if (diff)
+  {
+    STensorOperation::scale(s, 1.5/(sigEq*R0), (*DFDsig)[0]);
+    (*DFDR)[0] = -1./R0;
+  }
+};
+void mlawAnisotropicPlasticityJ2::getYieldNormal(std::vector<STensor3>& Np, const STensor3& sig, const double R, const IPAnisotropicPlasticity* q0, const IPAnisotropicPlasticity* q1,
+                                  bool diff, std::vector<STensor43>* DNpDsig, std::vector<STensor3>* DNpDR) const
+{
+  int numberYield = getNumOfYieldSurfaces();
+  double R0 = _j2IH->getYield0();
+  STensor3 s = sig.dev();
+  STensorOperation::scale(s, 1.5/R, Np[0]);
+  if (diff)
+  {
+    STensorOperation::scale(_I4dev, 1.5/R, (*DNpDsig)[0]);
+    STensorOperation::scale(s, -1.5/(R*R), (*DNpDR)[0]);
+  }
+};
+
+mlawAnisotropicPlasticityHill48::mlawAnisotropicPlasticityHill48(const int num,const double E,const double nu, const double rho,const J2IsotropicHardening &_j2IH,
+              const double tol,
+              const bool matrixbyPerturbation, const double pert):
+              mlawAnisotropicPlasticity(num, E, nu, rho, _j2IH, tol, matrixbyPerturbation,pert)
+{
+  STensorOperation::zero(_aniM);
+};
+mlawAnisotropicPlasticityHill48::mlawAnisotropicPlasticityHill48(const mlawAnisotropicPlasticityHill48 &source): mlawAnisotropicPlasticity(source), _aniM(source._aniM){};
+mlawAnisotropicPlasticityHill48& mlawAnisotropicPlasticityHill48::operator=(const materialLaw &source)
+{
+  mlawAnisotropicPlasticity::operator =(source);
+  const mlawAnisotropicPlasticityHill48* psrc = dynamic_cast<const mlawAnisotropicPlasticityHill48*>(&source);
+  if (psrc != NULL)
+  {
+    _aniM = psrc->_aniM;
+  }
+  
+  return *this;
+}
+
+void mlawAnisotropicPlasticityHill48::setYieldParameters(const std::vector<double>& Mvec)
+{
+  if (Mvec.size() != 6)
+  {
+    Msg::Error("Hill48 requires 6 parameters to define yield surface");
+  }
+  STensorOperation::zero(_aniM);
+  
+  Msg::Info("-----\nHill parameters");
+  for (int i=0; i< Mvec.size(); i++)
+  {
+    printf("%.16g ", Mvec[i]);
+  }
+  Msg::Info("\n------");
+  
+  // LL, TT, NN, LT, LN, TN
+  
+  // [F, G, H, L, M, N] = Mvec
+  // sigEq**2 = 1.5*(F*s00**2 +G*s11**2+ H*s22**2 + 2L*s01**2 + 2M*s02**2 + 2N*s12**2  ) = 1.5*s:_aniM:s
+  
+  _aniM(0,0,0,0) = Mvec[0];
+  _aniM(1,1,1,1) = Mvec[1];
+  _aniM(2,2,2,2) = Mvec[2];
+  
+  _aniM(1,0,1,0) = Mvec[3]*0.5;
+  _aniM(0,1,0,1) = Mvec[3]*0.5;
+  _aniM(0,1,1,0) = Mvec[3]*0.5;
+  _aniM(1,0,0,1) = Mvec[3]*0.5;
+  
+  _aniM(2,0,2,0) = Mvec[4]*0.5;
+  _aniM(0,2,2,0) = Mvec[4]*0.5;
+  _aniM(0,2,0,2) = Mvec[4]*0.5;
+  _aniM(2,0,0,2) = Mvec[4]*0.5;
+  
+  
+  _aniM(2,1,2,1) = Mvec[5]*0.5;
+  _aniM(1,2,1,2) = Mvec[5]*0.5;
+  _aniM(1,2,2,1) = Mvec[5]*0.5;
+  _aniM(2,1,1,2) = Mvec[5]*0.5; 
+}
+
+void mlawAnisotropicPlasticityHill48::yieldFunction(std::vector<double>& yf, const STensor3& sig, const double R, const IPAnisotropicPlasticity* q0, const IPAnisotropicPlasticity* q1,
+                                  bool diff, std::vector<STensor3>* DFDsig, std::vector<double>* DFDR) const
+{
+  double R0 = _j2IH->getYield0();
+  static STensor3 s, Ms;
+  s = sig.dev();
+  STensorOperation::multSTensor43STensor3(_aniM,s,Ms);
+  double sigEq = sqrt(1.5*STensorOperation::doubledot(s,Ms));
+  yf.resize(1);
+  yf[0] = (sigEq - R)/R0;
+  if (diff)
+  {
+    STensorOperation::multSTensor3STensor43(Ms,_I4dev, (*DFDsig)[0]);
+    (*DFDsig)[0] *= (1.5/(sigEq*R0));
+    (*DFDR)[0] = -1./R0;
+  }
+};
+void mlawAnisotropicPlasticityHill48::getYieldNormal(std::vector<STensor3>& Np, const STensor3& sig, const double R, const IPAnisotropicPlasticity* q0, const IPAnisotropicPlasticity* q1,
+                                  bool diff, std::vector<STensor43>* DNpDsig, std::vector<STensor3>* DNpDR) const
+{
+  int numberYield = getNumOfYieldSurfaces();
+  double R0 = _j2IH->getYield0();
+  static STensor3 s, Ms;
+  s = sig.dev();
+  STensorOperation::multSTensor43STensor3(_aniM,s,Ms);
+  STensorOperation::multSTensor3STensor43(Ms,_I4dev, Np[0]);
+  Np[0]*= (1.5/R0);
+  if (diff)
+  {
+    static STensor43  tmp;
+    STensorOperation::multSTensor43(_aniM,_I4dev, tmp);
+    STensorOperation::multSTensor43(_I4dev,tmp,(*DNpDsig)[0]);
+    (*DNpDsig)[0]*= (1.5/R0);
+    STensorOperation::zero((*DNpDR)[0]);
+  }
+};
\ No newline at end of file
diff --git a/NonLinearSolver/materialLaw/mlawAnisotropicPlasticity.h b/NonLinearSolver/materialLaw/mlawAnisotropicPlasticity.h
new file mode 100644
index 0000000000000000000000000000000000000000..6d7211abace9f085c9d008ea5cc57fd3f5a6eba7
--- /dev/null
+++ b/NonLinearSolver/materialLaw/mlawAnisotropicPlasticity.h
@@ -0,0 +1,195 @@
+//
+// C++ Interface: material law
+//
+// Description: material law for plastic anisotropy 
+//
+// Author:  <V.D. Nguyen>, (C) 2023
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+
+#ifndef MLAWANISOTROPICPLASTICITY_H_
+#define MLAWANISOTROPICPLASTICITY_H_
+
+#include "mlaw.h"
+#include "STensor3.h"
+#include "STensor43.h"
+#include "ipAnisotropicPlasticity.h"
+
+
+class mlawAnisotropicPlasticity : public materialLaw
+{
+  public:
+    enum stressFormulation{ CORO_CAUCHY = 0,    // cauchy stress in yield surface
+                            CORO_KIRCHHOFF = 1  // Kirchhoff stress in yield surface
+                          };
+  protected:
+    J2IsotropicHardening *_j2IH;
+    // can't be const due to operator= constructor (HOW TO CHANGE THIS ??)
+    double _rho; // density
+    double _E; // young modulus
+    double _nu; // Poisson ratio
+    double _lambda; // 1st lame parameter
+    double _mu; // 2nd lame parameter (=G)
+    double _K; // bulk modulus
+    double _K3; // 3*bulk modulus
+    double _mu3; // 3*_mu = 3*G
+    double _mu2; // 2*_mu = 2*G
+    double _tol; // tolerance for iterative process
+    int _maxite;
+    double _perturbationfactor; // perturbation factor
+    bool _tangentByPerturbation; // flag for tangent by perturbation
+    STensor43 _Cel, _I4, _I4dev; // elastic hook tensor
+    int _order;
+    stressFormulation _stressFormulation;
+
+  public:
+    mlawAnisotropicPlasticity(const int num,const double E,const double nu, const double rho,const J2IsotropicHardening &_j2IH,const double tol=1.e-6,
+              const bool matrixbyPerturbation = false, const double pert = 1e-8);
+  #ifndef SWIG
+    mlawAnisotropicPlasticity(const mlawAnisotropicPlasticity &source);
+    mlawAnisotropicPlasticity& operator=(const materialLaw &source);
+    
+    virtual ~mlawAnisotropicPlasticity();
+    
+    virtual bool withEnergyDissipation() const {return true;};
+    // function of materialLaw
+    virtual materialLaw* clone() const =0;
+    virtual matname getType() const = 0;
+    virtual void setYieldParameters(const std::vector<double>& params)=0;
+    virtual void checkInternalState(IPVariable* ipv, const IPVariable* ipvprev) const{};
+    virtual void createIPState(IPStateBase* &ips,bool hasBodyForce, const bool* state_=NULL,const MElement *ele=NULL, const int nbFF_=0, const IntPt *GP=NULL, const int gpt = 0) const;
+    virtual void initLaws(const std::map<int,materialLaw*> &maplaw){}; // this law is initialized so nothing to do
+    virtual double soundSpeed() const; // default but you can redefine it for your case
+    virtual double density()const{return _rho;}
+    virtual const double bulkModulus() const{return _K;}
+    virtual const double shearModulus() const{return _mu;}
+    virtual const double poissonRatio() const{return _nu;}
+    virtual double scaleFactor() const{return _mu;};
+    virtual const J2IsotropicHardening * getJ2IsotropicHardening() const {return _j2IH;}
+    void setStressFormulation(int s);
+    virtual void setStrainOrder(const int i) {_order = i; Msg::Info("order %d is used to approximate log and exp operator ",_order);};
+    // specific function
+  public:
+    virtual void constitutive(
+                            const STensor3& F0,         // initial deformation gradient (input @ time n)
+                            const STensor3& Fn,         // updated deformation gradient (input @ time n+1)
+                            STensor3 &P,                // updated 1st Piola-Kirchhoff stress tensor (output)
+                                                        // contains the initial values on input
+                            const IPVariable *q0,       // array of initial internal variable
+                            IPVariable *q1,             // updated array of internal variable (in ipvcur on output),
+                            STensor43 &Tangent,         // constitutive tangents (output)
+                            const bool stiff,            // if true compute the tangents
+                            STensor43* elasticTangent = NULL, 
+                            const bool dTangent =false,
+                            STensor63* dCalgdeps = NULL
+                           ) const;
+  protected:
+    virtual int getNumOfYieldSurfaces() const {return 1;}
+    double deformationEnergy(const STensor3 &C) const ;
+    virtual bool withPlastic(const STensor3& F, const STensor3& kcor, const double R, const IPAnisotropicPlasticity* q0, const IPAnisotropicPlasticity* q1) const;
+    virtual void yieldFunction(std::vector<double>& yf, const STensor3& sig, const double R, const IPAnisotropicPlasticity* q0, const IPAnisotropicPlasticity* q1,
+                                        bool diff=false, std::vector<STensor3>* DFDsig=NULL, std::vector<double>* DFDR=NULL) const=0;
+    virtual void getYieldNormal(std::vector<STensor3>& Np, const STensor3& sig, const double R, const IPAnisotropicPlasticity* q0, const IPAnisotropicPlasticity* q1,
+                                        bool diff=false, std::vector<STensor43>* DNpDsig=NULL, std::vector<STensor3>* DNpDR=NULL) const=0;
+    virtual void computeResidual(const STensor3& DeltaEp, std::vector<double>& DeltaPlasticMult, const double DeltaHatP, // unknown value 
+                                        const STensor3& sig,  const double R, 
+                                        const IPAnisotropicPlasticity* q0, const IPAnisotropicPlasticity* q1, 
+                                        std::vector<double>& res0, STensor3& res1, double& res2,  
+                                        bool stiff, 
+                                        const STensor43& DsigDDeltaEp, const double H,
+                                        std::vector<STensor3>& Dres0DDeltaEp, STensor43& Dres1DDeltaEp, STensor3& Dres2DDeltaEp,
+                                        std::vector<double>& Dres0DDeltaPlasticMult, std::vector<STensor3>& Dres1DDeltaPlasticMult, std::vector<double>& Dres2DDeltaPlasticMult,
+                                        std::vector<double>& Dres0DDeltaHatP, STensor3& Dres1DDeltaHatP, double& Dres2DDeltaHatP) const;
+    virtual void computeDResidual(const STensor3& DeltaEp, const std::vector<double>& DeltaPlasticMult, const double DeltaHatP, // unknown value 
+                                  const STensor3& sig, const double R,  const IPAnisotropicPlasticity* q0, const IPAnisotropicPlasticity* q1,
+                                  const STensor43& DsigDEepr, const double H, 
+                                  std::vector<STensor3>& Dres0DEepr, STensor43& Dres1DEepr, STensor3& Dres2DEepr) const;
+                                  
+    virtual void getResAndJacobian(fullVector<double>& res, fullMatrix<double>& J, 
+                                const std::vector<double>& res0, const STensor3& res1, const double& res2,
+                                const std::vector<STensor3>& Dres0DDeltaEp, const STensor43& Dres1DDeltaEp, const STensor3& Dres2DDeltaEp,
+                                const std::vector<double>& Dres0DDeltaPlasticMult, const std::vector<STensor3>& Dres1DDeltaPlasticMult, const std::vector<double>& Dres2DDeltaPlasticMult,
+                                const std::vector<double>& Dres0DDeltaHatP, const STensor3& Dres1DDeltaHatP,const double& Dres2DDeltaHatP) const;
+                                
+    virtual void tangentComputation(STensor43& dStressDF,
+                              const bool plastic,
+                              const STensor3& F,  // current F
+                              const STensor3& corKir,  // cor Kir
+                              const STensor3& S, //  second PK
+                              const STensor3& Fepr, const STensor3& Fppr, // predictor
+                              const STensor43& Lpr,
+                              const STensor3& Fe, const STensor3& Fp, // corrector
+                              const STensor43& L, const STensor63& dL, // corrector value
+                              const STensor43& DcorKirDEepr,
+                              const STensor43& dFpDEepr,
+                              const STensor43& EprToF, const STensor3& Fpinv
+                              ) const;
+                                    
+    virtual bool predictorCorector(const STensor3& F0,         // initial deformation gradient (input @ time n)
+                            const STensor3& F,         // updated deformation gradient (input @ time n+1)
+                            STensor3 &P,                // updated 1st Piola-Kirchhoff stress tensor (output)
+                            const IPAnisotropicPlasticity *q0,       // array of initial internal variable
+                            IPAnisotropicPlasticity *q,             // updated array of internal variable (in ipvcur on output),
+
+                            STensor43& Tangent,         // mechanical tangents (output)
+                            STensor43& dFpdF, // plastic tangent
+                            STensor43& dFedF,
+                            STensor3& dpdF,
+                            const bool stiff
+                            ) const;
+ #endif // SWIG
+}; 
+
+
+class mlawAnisotropicPlasticityJ2 : public mlawAnisotropicPlasticity
+{
+  // to test the implementation
+  public:
+    mlawAnisotropicPlasticityJ2(const int num,const double E,const double nu, const double rho,const J2IsotropicHardening &_j2IH,const double tol=1.e-6,
+              const bool matrixbyPerturbation = false, const double pert = 1e-8);
+  #ifndef SWIG
+    mlawAnisotropicPlasticityJ2(const mlawAnisotropicPlasticityJ2 &source);
+    mlawAnisotropicPlasticityJ2& operator=(const materialLaw &source);
+    virtual ~mlawAnisotropicPlasticityJ2(){};
+    virtual materialLaw* clone() const {return new mlawAnisotropicPlasticityJ2(*this);};
+    // function of materialLaw
+    virtual matname getType() const {return materialLaw::J2;};
+    virtual void setYieldParameters(const std::vector<double>& params){};
+    
+    virtual void yieldFunction(std::vector<double>& yf, const STensor3& sig, const double R, const IPAnisotropicPlasticity* q0, const IPAnisotropicPlasticity* q1,
+                                        bool diff=false, std::vector<STensor3>* DFDsig=NULL, std::vector<double>* DFDR=NULL) const;
+    virtual void getYieldNormal(std::vector<STensor3>& Np, const STensor3& sig, const double R, const IPAnisotropicPlasticity* q0, const IPAnisotropicPlasticity* q1,
+                                        bool diff=false, std::vector<STensor43>* DNpDsig=NULL, std::vector<STensor3>* DNpDR=NULL) const;
+  #endif // SWIG
+};
+
+
+
+class mlawAnisotropicPlasticityHill48 : public mlawAnisotropicPlasticity
+{
+  protected:
+    STensor43 _aniM;
+  public:
+    mlawAnisotropicPlasticityHill48(const int num,const double E,const double nu, const double rho,const J2IsotropicHardening &_j2IH, const double tol=1.e-6,
+              const bool matrixbyPerturbation = false, const double pert = 1e-8);
+  #ifndef SWIG
+    mlawAnisotropicPlasticityHill48(const mlawAnisotropicPlasticityHill48 &source);
+    mlawAnisotropicPlasticityHill48& operator=(const materialLaw &source);
+    virtual ~mlawAnisotropicPlasticityHill48(){};
+    virtual materialLaw* clone() const {return new mlawAnisotropicPlasticityHill48(*this);};
+    // function of materialLaw
+    virtual matname getType() const {return materialLaw::Hill48;};
+    virtual void setYieldParameters(const std::vector<double>& params);
+    
+    virtual void yieldFunction(std::vector<double>& yf, const STensor3& sig, const double R, const IPAnisotropicPlasticity* q0, const IPAnisotropicPlasticity* q1,
+                                        bool diff=false, std::vector<STensor3>* DFDsig=NULL, std::vector<double>* DFDR=NULL) const;
+    virtual void getYieldNormal(std::vector<STensor3>& Np, const STensor3& sig, const double R, const IPAnisotropicPlasticity* q0, const IPAnisotropicPlasticity* q1,
+                                        bool diff=false, std::vector<STensor43>* DNpDsig=NULL, std::vector<STensor3>* DNpDR=NULL) const;
+  #endif // SWIG
+};
+
+
+
+#endif //MLAWANISOTROPICPLASTICITY_H_
\ No newline at end of file
diff --git a/NonLinearSolver/materialLaw/mlawJ2FullyCoupledThermoMechanics.cpp b/NonLinearSolver/materialLaw/mlawJ2FullyCoupledThermoMechanics.cpp
index 6ddf3ab644e42b010a8f2889d3d161a9a9cd67b0..d841280a80ff278f0c3788aef56888f0a32a5d64 100644
--- a/NonLinearSolver/materialLaw/mlawJ2FullyCoupledThermoMechanics.cpp
+++ b/NonLinearSolver/materialLaw/mlawJ2FullyCoupledThermoMechanics.cpp
@@ -481,7 +481,7 @@ void mlawJ2FullyCoupledThermoMechanics::predictorCorector(const STensor3& F0,
       ite++;
       if(ite > maxite)
       {
-        Msg::Error("No convergence for plastic correction in j2linear !!");
+        Msg::Error("No convergence for plastic correction in J2 !!");
         break;
       }
     }
diff --git a/NonLinearSolver/materialLaw/mlawJ2FullyCoupledThermoMechanics.h b/NonLinearSolver/materialLaw/mlawJ2FullyCoupledThermoMechanics.h
index a88fca24f2e62ca257acfe87f7e9e885eb514f73..50783c8fe61e05ffea2a11c29887aa2039f9ec3c 100644
--- a/NonLinearSolver/materialLaw/mlawJ2FullyCoupledThermoMechanics.h
+++ b/NonLinearSolver/materialLaw/mlawJ2FullyCoupledThermoMechanics.h
@@ -132,7 +132,7 @@ class mlawJ2FullyCoupledThermoMechanics : public materialLaw {
     void setStrainOrder(const int i){_order = i;};
     void setTaylorQuineyFactor(const double f){_TaylorQuineyFactor = f;};
 
-    virtual matname getType() const{return materialLaw::j2linear;}
+    virtual matname getType() const{return materialLaw::J2;}
     virtual void createIPState(IPStateBase* &ips,bool hasBodyForce, const bool* state_=NULL,const MElement *ele=NULL, const int nbFF_=0, const IntPt *GP=NULL, const int gpt = 0) const;
     virtual void initLaws(const std::map<int,materialLaw*> &maplaw){};
     virtual double soundSpeed() const;
diff --git a/NonLinearSolver/materialLaw/mlawJ2VMSmallStrain.h b/NonLinearSolver/materialLaw/mlawJ2VMSmallStrain.h
index e8ee5520238f6fa1d81651dce5702e04e51d47ad..6206958b5ae9a49a2d7c8916ceb011147ae6d177 100644
--- a/NonLinearSolver/materialLaw/mlawJ2VMSmallStrain.h
+++ b/NonLinearSolver/materialLaw/mlawJ2VMSmallStrain.h
@@ -52,7 +52,7 @@ class mlawJ2VMSmallStrain : public materialLaw {
       if (_j2IH != NULL) delete _j2IH;
       _j2IH = isoHard.clone();
     }
-    virtual matname getType() const{return materialLaw::j2linear;}
+    virtual matname getType() const{return materialLaw::J2;}
     virtual void createIPState(IPStateBase* &ips, bool hasBodyForce, const bool* state_=NULL,const MElement *ele=NULL, const int nbFF_=0, const IntPt *GP=NULL, const int gpt = 0) const;
     virtual void initLaws(const std::map<int,materialLaw*> &maplaw){};
     virtual double soundSpeed() const;
diff --git a/NonLinearSolver/materialLaw/mlawJ2linear.cpp b/NonLinearSolver/materialLaw/mlawJ2linear.cpp
index f865ac2ae6d99b4058d309d392a95030c6cb48a3..d7985600b9df3161bbe66b20f9ed3901c1b51bf0 100644
--- a/NonLinearSolver/materialLaw/mlawJ2linear.cpp
+++ b/NonLinearSolver/materialLaw/mlawJ2linear.cpp
@@ -516,7 +516,7 @@ void mlawJ2linear::predictorCorector(const STensor3& F0,         // initial defo
         ite++;
         if(ite > maxite)
         {
-          Msg::Error("No convergence for plastic correction in j2linear !! VMcriterion/sy0 = %e",VMcriterion/Sy0);
+          Msg::Error("No convergence for plastic correction in J2 !! VMcriterion/sy0 = %e",VMcriterion/Sy0);
           //q->operator =(*dynamic_cast<const IPVariable*>(q0));
 					P(0,0) = P(1,1) = P(2,2) = sqrt(-1.);
           return;
diff --git a/NonLinearSolver/materialLaw/mlawJ2linear.h b/NonLinearSolver/materialLaw/mlawJ2linear.h
index 5af4a6426fb40128f30036e0860d117ec4932242..106157a6fe8d1fbcd77576d331b5bb21ae69c367 100644
--- a/NonLinearSolver/materialLaw/mlawJ2linear.h
+++ b/NonLinearSolver/materialLaw/mlawJ2linear.h
@@ -64,7 +64,7 @@ class mlawJ2linear : public materialLaw
 	virtual materialLaw* clone() const {return new mlawJ2linear(*this);};
   virtual bool withEnergyDissipation() const {return true;};
   // function of materialLaw
-  virtual matname getType() const{return materialLaw::j2linear;}
+  virtual matname getType() const{return materialLaw::J2;}
   virtual void createIPState(IPStateBase* &ips,bool hasBodyForce, const bool* state_=NULL,const MElement *ele=NULL, const int nbFF_=0, const IntPt *GP=NULL, const int gpt = 0) const;
   virtual void initLaws(const std::map<int,materialLaw*> &maplaw){}; // this law is initialized so nothing to do
   virtual double soundSpeed() const; // default but you can redefine it for your case
diff --git a/dG3D/benchmarks/CMakeLists.txt b/dG3D/benchmarks/CMakeLists.txt
index f7e49d67d9d5030f73445511c3a18b8fc3b88264..98e1d9da849c0fae0d88e107cb1db6b923757e05 100644
--- a/dG3D/benchmarks/CMakeLists.txt
+++ b/dG3D/benchmarks/CMakeLists.txt
@@ -163,6 +163,7 @@ add_subdirectory(mixedmodeDelaminationExpoLaw)
 add_subdirectory(restartMixedmodeDelaminationExpoLaw)
 add_subdirectory(hyperViscoElastic)
 add_subdirectory(powerYieldViscoElastoPlastic)
+add_subdirectory(powerYieldViscoElastoPlastic/fortran)
 add_subdirectory(powerYieldViscoElastoPlasticWithCorrection)
 add_subdirectory(powerYieldViscoElastic)
 add_subdirectory(powerYieldViscoElastWithCorrection)
@@ -274,3 +275,4 @@ add_subdirectory(honeycomb_compression)
 add_subdirectory(nonLinearTVE_uniaxial)
 add_subdirectory(nonLinearTVP_uniaxial)
 add_subdirectory(nonLinearTVP_cube)
+add_subdirectory(unitCell-Hill)
diff --git a/dG3D/benchmarks/EM_Cylinder_Unit_Test/cyl_LinearElecMag.py b/dG3D/benchmarks/EM_Cylinder_Unit_Test/cyl_LinearElecMag.py
index 1782ebd59435ab6dd6feb7625071df7c11aed732..ea640d3fd2046aab2fdddca60ea23c9785e694ec 100644
--- a/dG3D/benchmarks/EM_Cylinder_Unit_Test/cyl_LinearElecMag.py
+++ b/dG3D/benchmarks/EM_Cylinder_Unit_Test/cyl_LinearElecMag.py
@@ -235,7 +235,7 @@ mysolver.archivingForceOnPhysicalGroup("Face", 7, 5, 1);
 mysolver.solve()
 
 check = TestCheck()
-check.equal(-3.427375e+06,mysolver.getArchivedForceOnPhysicalGroup("Face", SurfIndStart, 3),1.e-3)
+check.equal(-6.467735e+07,mysolver.getArchivedForceOnPhysicalGroup("Face", SurfIndStart, 3),1.e-3)
 check.equal(-3.484509e+06,mysolver.getArchivedForceOnPhysicalGroup("Face", SurfIndStart, 4),1.e-3)
 check.equal(3.484509e+06,mysolver.getArchivedForceOnPhysicalGroup("Face", SurfIndEnd, 4),1.e-3)
 check.equal(1.130279e+06,mysolver.getArchivedForceOnPhysicalGroup("Face", 7, 5),1.e-3)
diff --git a/dG3D/benchmarks/ElectroGenericThermoMechanics/elecGenericTM.py b/dG3D/benchmarks/ElectroGenericThermoMechanics/elecGenericTM.py
index 647a802dc0b90e27d059e8b8f66053f75b5affed..2714bbe15194ae237837108ba32acede8881a313 100644
--- a/dG3D/benchmarks/ElectroGenericThermoMechanics/elecGenericTM.py
+++ b/dG3D/benchmarks/ElectroGenericThermoMechanics/elecGenericTM.py
@@ -234,6 +234,6 @@ check = TestCheck()
 check.equal(0.000000e+00,mysolver.getArchivedForceOnPhysicalGroup("Face", SurfSMPStart, 3),1.e-5)
 check.equal(-1.273694e+09,mysolver.getArchivedForceOnPhysicalGroup("Face", SurfSMPStart, 4),1.e-5)
 check.equal(1.273694e+09,mysolver.getArchivedForceOnPhysicalGroup("Face", SurfSMPEnd, 4),1.e-5)
-check.equal(1.387616e+08,mysolver.getArchivedForceOnPhysicalGroup("Face", 7, 5),1.e-5)
+check.equal(1.282224e+08,mysolver.getArchivedForceOnPhysicalGroup("Face", 7, 5),1.e-5)
 
 
diff --git a/dG3D/benchmarks/GursonThomasonShearTransition/model.py b/dG3D/benchmarks/GursonThomasonShearTransition/model.py
index 3587c22ab2de93754a3d4b9a2950530f930478c0..d8e95bd726aa1582081b9c75185dbb504e5f14c4 100755
--- a/dG3D/benchmarks/GursonThomasonShearTransition/model.py
+++ b/dG3D/benchmarks/GursonThomasonShearTransition/model.py
@@ -194,8 +194,8 @@ mysolver.solve()
 
 
 check = TestCheck()
-check.equal(-1.915989e-04,mysolver.getArchivedNodalValue(2,0,mysolver.displacement),1.e-4)
-check.equal(1.660548e-04,mysolver.getArchivedNodalValue(3,0,mysolver.displacement),1.e-4)
+check.equal(-1.870109e-04,mysolver.getArchivedNodalValue(2,0,mysolver.displacement),1.e-4)
+check.equal(1.685898e-04,mysolver.getArchivedNodalValue(3,0,mysolver.displacement),1.e-4)
 
 
 
diff --git a/dG3D/benchmarks/HOwithConstantBodyForce/run.py b/dG3D/benchmarks/HOwithConstantBodyForce/run.py
index 3e03c4eac58f8bb76fbd42df75144a330ab64cb9..a148dde4ffa06dac9a7747f98145029597a570af 100644
--- a/dG3D/benchmarks/HOwithConstantBodyForce/run.py
+++ b/dG3D/benchmarks/HOwithConstantBodyForce/run.py
@@ -182,7 +182,7 @@ mysolver.solve()
 import linecache
 total_line_number = sum(1 for line in open('E_0_GP_0_stress.csv'))
 homoStress = linecache.getline('E_0_GP_0_stress.csv',total_line_number)
-print(homoStress)
+#print(homoStress)
 val = float(homoStress.split(';')[1])
 check = TestCheck()
 check.equal(-0.014840731,val,1.e-4)
diff --git a/dG3D/benchmarks/MFH_Stoch_Ply/Stoch_Sample.py b/dG3D/benchmarks/MFH_Stoch_Ply/Stoch_Sample.py
index 0ce70a1c9b8d31fa4a3f967af168f8595e45c32b..788abef54a0ce4335682b871ae194b8cd5fff6b0 100644
--- a/dG3D/benchmarks/MFH_Stoch_Ply/Stoch_Sample.py
+++ b/dG3D/benchmarks/MFH_Stoch_Ply/Stoch_Sample.py
@@ -91,7 +91,7 @@ mysolver.solve()
 
 
 check = TestCheck()
-check.equal(1.432063e-01,mysolver.getArchivedForceOnPhysicalGroup("Face", 101, 0),1.e-5)
+check.equal(1.353881e-01,mysolver.getArchivedForceOnPhysicalGroup("Face", 101, 0),1.e-5)
 
 try:
   import linecache
@@ -103,9 +103,9 @@ except:
   import os
   os._exit(1)
 else:
-  check.equal(7.910747e+08,float(linesmax.split(';')[1]))
-  check.equal(3.835258e+08,float(linesmin.split(';')[1]))
-  check.equal(5.728414e+08,float(linesmean.split(';')[1]))
+  check.equal(6.886981e+08,float(linesmax.split(';')[1]))
+  check.equal(4.029402e+08,float(linesmin.split(';')[1]))
+  check.equal(5.415527e+08,float(linesmean.split(';')[1]))
 
 
 
diff --git a/dG3D/benchmarks/nanoIndentation/ni.py b/dG3D/benchmarks/nanoIndentation/ni.py
index 221c298661066079534c45d7a4206d0b485f2903..0c74b577ebaf7468f9268658777326c85cf8bece 100644
--- a/dG3D/benchmarks/nanoIndentation/ni.py
+++ b/dG3D/benchmarks/nanoIndentation/ni.py
@@ -166,7 +166,7 @@ mysolver.archivingRigidContactForce(22, 2, 1)
 mysolver.solve()
 
 check = TestCheck()
-check.equal(-2.820332e-04,mysolver.getArchivedNodalValue(1001,2,mysolver.displacement),1.e-4)
+check.equal(-2.711273e-04,mysolver.getArchivedNodalValue(1001,2,mysolver.displacement),1.e-4)
 
 
 
diff --git a/dG3D/benchmarks/powerYieldViscoElastoPlastic/fortran/CMakeLists.txt b/dG3D/benchmarks/powerYieldViscoElastoPlastic/fortran/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..3667d9747b7c516dd7833cc4e59989e55b267c01
--- /dev/null
+++ b/dG3D/benchmarks/powerYieldViscoElastoPlastic/fortran/CMakeLists.txt
@@ -0,0 +1,11 @@
+# test file
+
+set(PYFILE cylinder.py)
+
+set(FILES2DELETE 
+  disp*.msh
+  stress*.msh
+  *.csv
+)
+
+add_cm3python_test(${PYFILE} "${FILES2DELETE}")
diff --git a/dG3D/benchmarks/powerYieldViscoElastoPlastic/fortran/cylinder.py b/dG3D/benchmarks/powerYieldViscoElastoPlastic/fortran/cylinder.py
index 9dc9a44b5a73bdcf953909b2a7cdb280e9747902..39157629e456c735a48ef8a581d27f6765491c45 100644
--- a/dG3D/benchmarks/powerYieldViscoElastoPlastic/fortran/cylinder.py
+++ b/dG3D/benchmarks/powerYieldViscoElastoPlastic/fortran/cylinder.py
@@ -26,10 +26,10 @@ myfield1.stabilityParameters(beta1)
 # solver
 sol = 2  # Gmm=0 (default) Taucs=1 PETsc=2
 soltype =1 # StaticLinear=0 (default) StaticNonLinear=1
-nstep = 100  # number of step (used only if soltype=1)
+nstep = 1000  # number of step (used only if soltype=1)
 ftime =1.   # Final time (used only if soltype=1)
 tol=1.e-8  # relative tolerance for NR scheme (used only if soltype=1)
-nstepArch=1 # Number of step between 2 archiving (used only if soltype=1)
+nstepArch=10 # Number of step between 2 archiving (used only if soltype=1)
 
 
 
@@ -42,6 +42,7 @@ mysolver.addMaterialLaw(law1)
 mysolver.Scheme(soltype)
 mysolver.Solver(sol)
 mysolver.snlData(nstep,ftime,tol)
+mysolver.stepBetweenArchiving(nstepArch)
 
 mysolver.displacementBC('Face',1,2,0.)
 mysolver.displacementBC('Face',3,1,0.)
@@ -49,7 +50,7 @@ mysolver.displacementBC('Face',4,0,0.)
 
 mysolver.displacementBC('Face',1,0,0)
 mysolver.displacementBC('Face',1,1,0)
-mysolver.displacementBC('Face',2,2,1.)
+mysolver.displacementBC('Face',2,2,10.)
 
 # build view
 mysolver.internalPointBuildView("Strain_xx",IPField.STRAIN_XX, 1, 1);
@@ -80,4 +81,4 @@ mysolver.archivingNodeDisplacement(5,2,1)
 mysolver.solve()
 
 check = TestCheck()
-check.equal(-5.246765e+03,mysolver.getArchivedForceOnPhysicalGroup("Face", 1, 2),1.e-3)
+check.equal(-1.308062e+04,mysolver.getArchivedForceOnPhysicalGroup("Face", 1, 2),1.e-3)
diff --git a/dG3D/benchmarks/switchSystem_quadDispLinNonlocal/notchedBar.py b/dG3D/benchmarks/switchSystem_quadDispLinNonlocal/notchedBar.py
index 0e0bead52191b74d4d4a2bdc1da7ec5968800321..21ed20435d07c4c0d88f5e534cd52d7389c32442 100755
--- a/dG3D/benchmarks/switchSystem_quadDispLinNonlocal/notchedBar.py
+++ b/dG3D/benchmarks/switchSystem_quadDispLinNonlocal/notchedBar.py
@@ -100,7 +100,7 @@ mysolver.archivingNodeDisplacement(73,1,1)
 mysolver.solve()
 
 check = TestCheck()
-check.equal(2.519294e-02,mysolver.getEnergy(energeticField.damage),1.e-4)
+check.equal(2.519787e-02,mysolver.getEnergy(energeticField.damage),1.e-4)
 
 # new time
 ftime = 1e-5
diff --git a/dG3D/benchmarks/torchLatticeUniaxial/Bounds.dat b/dG3D/benchmarks/torchLatticeUniaxial/Bounds.dat
index 8110b99195eedaeae39a0c73df9791c72ef1ddb6..3606ec6257cbf2faeb25d8119c292f05ca4e22d6 100644
Binary files a/dG3D/benchmarks/torchLatticeUniaxial/Bounds.dat and b/dG3D/benchmarks/torchLatticeUniaxial/Bounds.dat differ
diff --git a/dG3D/benchmarks/torchLatticeUniaxial/ModelGRU_GS_0f1_50_f2_75_model.pt b/dG3D/benchmarks/torchLatticeUniaxial/ModelGRU_GS_0f1_50_f2_75_model.pt
new file mode 100644
index 0000000000000000000000000000000000000000..4faabbdcbb0bdf69323089a2afd9497decc8da69
Binary files /dev/null and b/dG3D/benchmarks/torchLatticeUniaxial/ModelGRU_GS_0f1_50_f2_75_model.pt differ
diff --git a/dG3D/benchmarks/torchLatticeUniaxial/macro_cpp.py b/dG3D/benchmarks/torchLatticeUniaxial/macro_cpp.py
index 20f68625cef3a0e1fd65c4a52a46dcb22daed904..6c0a030c1e639930c932a953b226d66b6cd3dfc4 100755
--- a/dG3D/benchmarks/torchLatticeUniaxial/macro_cpp.py
+++ b/dG3D/benchmarks/torchLatticeUniaxial/macro_cpp.py
@@ -11,8 +11,6 @@ from dG3Dpy import*
 lnum1 = 11
 rho = 1e-9
 
-collect_dir = "/home/mohib/moammmPublic/sveresponses/Cell3/CollectedData"
-surrogate_dir = "/home/mohib/moammmPublic/sveresponses/Cell3/RNNSurrogate"
 
 with open('Bounds.dat', 'rb') as data:
     XGmax = pickle.load(data, encoding="latin1")
@@ -30,52 +28,54 @@ Radiusstd = (XGmax[1] - XGmin[1]) / 2.0
 CellSizemean = (XGmax[2] + XGmin[2]) / 2.0
 CellSizestd = (XGmax[2] - XGmin[2]) / 2.0
 
-TSTEPmean = (XGmax[3] + XGmin[3])/2.0
-TSTEPstd = (XGmax[3] - XGmin[3])/2.0
+TSTEPmean = (XGmax[3] + XGmin[3]) / 2.0
+TSTEPstd = (XGmax[3] - XGmin[3]) / 2.0
 
-EXXmean = (XGmax[4] + XGmin[4])/2.0
-EXXstd = (XGmax[4] - XGmin[4])/2.0
+EXXmean = (XGmax[4] + XGmin[4]) / 2.0
+EXXstd = (XGmax[4] - XGmin[4]) / 2.0
 
-EYYmean = (XGmax[5] + XGmin[5])/2.0
-EYYstd = (XGmax[5] - XGmin[5])/2.0
+EYYmean = (XGmax[5] + XGmin[5]) / 2.0
+EYYstd = (XGmax[5] - XGmin[5]) / 2.0
 
-EZZmean = (XGmax[6] + XGmin[6])/2.0
-EZZstd = (XGmax[6] - XGmin[6])/2.0
+EZZmean = (XGmax[6] + XGmin[6]) / 2.0
+EZZstd = (XGmax[6] - XGmin[6]) / 2.0
 
-EXYmean = (XGmax[7] + XGmin[7])/2.0
-EXYstd = (XGmax[7] - XGmin[7])/2.0
+EXYmean = (XGmax[7] + XGmin[7]) / 2.0
+EXYstd = (XGmax[7] - XGmin[7]) / 2.0
 
-EZXmean = (XGmax[8] + XGmin[8])/2.0
-EZXstd = (XGmax[8] - XGmin[8])/2.0
+EZXmean = (XGmax[8] + XGmin[8]) / 2.0
+EZXstd = (XGmax[8] - XGmin[8]) / 2.0
 
-EYZmean = (XGmax[9] + XGmin[9])/2.0
-EYZstd = (XGmax[9] - XGmin[9])/2.0
+EYZmean = (XGmax[9] + XGmin[9]) / 2.0
+EYZstd = (XGmax[9] - XGmin[9]) / 2.0
 
 # ----- Outputs ----------#
-SXXmean = (YSmax[0] + YSmin[0])/2.0
-SXXstd = (YSmax[0] - YSmin[0])/2.0
+SXXmean = (YSmax[0] + YSmin[0]) / 2.0
+SXXstd = (YSmax[0] - YSmin[0]) / 2.0
 
-SYYmean = (YSmax[1]+YSmin[1])/2.0
-SYYstd = (YSmax[1]-YSmin[1])/2.0
+SYYmean = (YSmax[1]+YSmin[1]) / 2.0
+SYYstd = (YSmax[1]-YSmin[1]) / 2.0
 
-SZZmean = (YSmax[2]+YSmin[2])/2.0
-SZZstd = (YSmax[2]-YSmin[2])/2.0
+SZZmean = (YSmax[2]+YSmin[2]) / 2.0
+SZZstd = (YSmax[2]-YSmin[2]) / 2.0
 
-SXYmean = (YSmax[3]+YSmin[3])/2.0
-SXYstd = (YSmax[3]-YSmin[3])/2.0
+SXYmean = (YSmax[3]+YSmin[3]) / 2.0
+SXYstd = (YSmax[3]-YSmin[3]) / 2.0
 
-SZXmean = (YSmax[4]+YSmin[4])/2.0
-SZXstd = (YSmax[4]-YSmin[4])/2.0
+SZXmean = (YSmax[4]+YSmin[4]) / 2.0
+SZXstd = (YSmax[4]-YSmin[4]) / 2.0
 
-SYZmean = (YSmax[5]+YSmin[5])/2.0
-SYZstd = (YSmax[5]-YSmin[5])/2.0
+SYZmean = (YSmax[5]+YSmin[5]) / 2.0
+SYZstd = (YSmax[5]-YSmin[5]) / 2.0
 
 
 # Set total no of inputs param for RNN (6 EGL + 3 Extra: radius, cellsize, time)
 numberOfInput = 9
-numInternalVars = 400
+numInternalVars = 75
 
-macromat1 = torchANNBasedDG3DMaterialLaw(lnum1, rho, numberOfInput, numInternalVars, "model.pt",
+surrogate = "ModelGRU_GS_0f1_50_f2_75_model.pt"
+
+macromat1 = torchANNBasedDG3DMaterialLaw(lnum1, rho, numberOfInput, numInternalVars, surrogate,
                 EXXmean, EXXstd, EXYmean, EXYstd, EYYmean, EYYstd,
                 EYZmean, EYZstd, EZZmean, EZZstd, EZXmean, EZXstd,
                 SXXmean, SXXstd, SXYmean, SXYstd, SYYmean, SYYstd,
@@ -86,6 +86,8 @@ macromat1 = torchANNBasedDG3DMaterialLaw(lnum1, rho, numberOfInput, numInternalV
 macromat1.setKinematicInput(1)
 # Set no of additional inputs
 macromat1.setNumExtraInput(3)
+# Set the location of time in the extra array
+macromat1.setTimeArg(2)
 
 # Set initial vcalues for extra inputs in order Radius, cellsize, time
 macromat1.setInitialExtraInput(0.6)
@@ -106,8 +108,8 @@ sol = 2  # Gmm=0 (default) Taucs=1 PETsc=2
 soltype =1 # StaticLinear=0 (default) StaticNonLinear=1
 nstep = 100  # number of step (used only if soltype=1)
 ftime = 1  # Final time (used only if soltype=1)
-tol=1.e-4  # relative tolerance for NR scheme (used only if soltype=1)
-nstepArch=1 # Number of step between 2 archiving (used only if soltype=1)
+tol=1.e-5  # relative tolerance for NR scheme (used only if soltype=1)
+nstepArch=5 # Number of step between 2 archiving (used only if soltype=1)
 
 
 # creation of  macro part Domain
@@ -137,7 +139,7 @@ mysolver.stepBetweenArchiving(nstepArch)
 mysolver.displacementBC("Face",551,1,0.0)
 mysolver.displacementBC("Face",554,0,0.0)
 mysolver.displacementBC("Face",555,2,0.0)
-mysolver.displacementBC("Face",553,1, 10)
+mysolver.displacementBC("Face",553,1,-5.0)
 
 
 # archivage
diff --git a/dG3D/benchmarks/torchLatticeUniaxial/model.pt b/dG3D/benchmarks/torchLatticeUniaxial/model.pt
deleted file mode 100644
index 4d7910c30ad8bf8ca468ba702676110c514a9709..0000000000000000000000000000000000000000
Binary files a/dG3D/benchmarks/torchLatticeUniaxial/model.pt and /dev/null differ
diff --git a/dG3D/benchmarks/torchLatticeUniaxial/rubics.geo b/dG3D/benchmarks/torchLatticeUniaxial/rubics.geo
index fead3263fdc8f2e097da330ce1e4ce74f0b38fac..4e41dbb7bda583b1cbc88e4102134e45cbbb6644 100644
--- a/dG3D/benchmarks/torchLatticeUniaxial/rubics.geo
+++ b/dG3D/benchmarks/torchLatticeUniaxial/rubics.geo
@@ -1,8 +1,8 @@
 SetFactory('OpenCASCADE');
 
-lx = 30;
-ly = 30;
-lz = 30;
+lx = 20;
+ly = 20;
+lz = 20;
 
 nx = 1;
 ny = 1;
@@ -35,14 +35,14 @@ Extrude {0, 0, lz/nz} {
   Surface{100}; Layers{nz}; Recombine;
 }
 
-Physical Volume(11)={1};
+
 
 Transfinite Line{1,3}=nx+1 Using Progression 1;
 Transfinite Line{2,4}=ny+1 Using Progression 1;
 
 Transfinite Surface {100};
 Recombine Surface{100};
-
+Recombine Volume{1};
 
 
 Physical Surface(551) = {101};
@@ -52,4 +52,4 @@ Physical Surface(554) = {104};
 Physical Surface(555) = {100};
 Physical Surface(556) = {105};
 
-
+Physical Volume(11)={1};
diff --git a/dG3D/benchmarks/torchLatticeUniaxial/rubics.msh b/dG3D/benchmarks/torchLatticeUniaxial/rubics.msh
index 6180478a6a548808c050c5b56010bc5b605fde6c..72e4ecc1248d99f4821f6a8141d18df68c517ce1 100644
--- a/dG3D/benchmarks/torchLatticeUniaxial/rubics.msh
+++ b/dG3D/benchmarks/torchLatticeUniaxial/rubics.msh
@@ -4,32 +4,32 @@ $EndMeshFormat
 $Entities
 8 12 6 1
 1 0 0 0 0 
-2 30 0 0 0 
-3 30 30 0 0 
-4 0 30 0 0 
-5 0 0 30 0 
-6 30 0 30 0 
-7 30 30 30 0 
-8 0 30 30 0 
-1 -9.99999993922529e-08 -1e-07 -1e-07 30.0000001 1e-07 1e-07 0 2 1 -2 
-2 29.9999999 -9.99999993922529e-08 -1e-07 30.0000001 30.0000001 1e-07 0 2 2 -3 
-3 -9.99999993922529e-08 29.9999999 -1e-07 30.0000001 30.0000001 1e-07 0 2 3 -4 
-4 -1e-07 -9.99999993922529e-08 -1e-07 1e-07 30.0000001 1e-07 0 2 4 -1 
-5 -1e-07 -1e-07 -9.99999993922529e-08 1e-07 1e-07 30.0000001 0 2 1 -5 
-6 29.9999999 -1e-07 -9.99999993922529e-08 30.0000001 1e-07 30.0000001 0 2 2 -6 
-7 -9.99999993922529e-08 -1e-07 29.9999999 30.0000001 1e-07 30.0000001 0 2 5 -6 
-8 29.9999999 29.9999999 -9.99999993922529e-08 30.0000001 30.0000001 30.0000001 0 2 3 -7 
-9 29.9999999 -9.99999993922529e-08 29.9999999 30.0000001 30.0000001 30.0000001 0 2 6 -7 
-10 -1e-07 29.9999999 -9.99999993922529e-08 1e-07 30.0000001 30.0000001 0 2 4 -8 
-11 -9.99999993922529e-08 29.9999999 29.9999999 30.0000001 30.0000001 30.0000001 0 2 7 -8 
-12 -1e-07 -9.99999993922529e-08 29.9999999 1e-07 30.0000001 30.0000001 0 2 8 -5 
-100 -1.500000100000012 -1.500000100000012 -1e-07 31.50000010000001 31.50000010000001 1e-07 1 555 4 1 2 3 4 
-101 -9.99999993922529e-08 -1e-07 -9.99999993922529e-08 30.0000001 1e-07 30.0000001 1 551 4 5 7 -6 -1 
-102 29.9999999 -9.99999993922529e-08 -9.99999993922529e-08 30.0000001 30.0000001 30.0000001 1 552 4 6 9 -8 -2 
-103 -9.99999993922529e-08 29.9999999 -9.99999993922529e-08 30.0000001 30.0000001 30.0000001 1 553 4 8 11 -10 -3 
-104 -1e-07 -9.99999993922529e-08 -9.99999993922529e-08 1e-07 30.0000001 30.0000001 1 554 4 10 12 -5 -4 
-105 -1.500000100000012 -1.500000100000012 29.9999999 31.50000010000001 31.50000010000001 30.0000001 1 556 4 7 9 11 12 
-1 -1.500000100000012 -1.500000100000012 -9.99999993922529e-08 31.50000010000001 31.50000010000001 30.0000001 1 11 6 -101 -102 -103 -104 -100 105 
+2 20 0 0 0 
+3 20 20 0 0 
+4 0 20 0 0 
+5 0 0 20 0 
+6 20 0 20 0 
+7 20 20 20 0 
+8 0 20 20 0 
+1 -9.99999993922529e-08 -1e-07 -1e-07 20.0000001 1e-07 1e-07 0 2 1 -2 
+2 19.9999999 -9.99999993922529e-08 -1e-07 20.0000001 20.0000001 1e-07 0 2 2 -3 
+3 -9.99999993922529e-08 19.9999999 -1e-07 20.0000001 20.0000001 1e-07 0 2 3 -4 
+4 -1e-07 -9.99999993922529e-08 -1e-07 1e-07 20.0000001 1e-07 0 2 4 -1 
+5 -1e-07 -1e-07 -9.99999993922529e-08 1e-07 1e-07 20.0000001 0 2 1 -5 
+6 19.9999999 -1e-07 -9.99999993922529e-08 20.0000001 1e-07 20.0000001 0 2 2 -6 
+7 -9.99999993922529e-08 -1e-07 19.9999999 20.0000001 1e-07 20.0000001 0 2 5 -6 
+8 19.9999999 19.9999999 -9.99999993922529e-08 20.0000001 20.0000001 20.0000001 0 2 3 -7 
+9 19.9999999 -9.99999993922529e-08 19.9999999 20.0000001 20.0000001 20.0000001 0 2 6 -7 
+10 -1e-07 19.9999999 -9.99999993922529e-08 1e-07 20.0000001 20.0000001 0 2 4 -8 
+11 -9.99999993922529e-08 19.9999999 19.9999999 20.0000001 20.0000001 20.0000001 0 2 7 -8 
+12 -1e-07 -9.99999993922529e-08 19.9999999 1e-07 20.0000001 20.0000001 0 2 8 -5 
+100 -1.000000100000001 -1.000000100000001 -1e-07 21.0000001 21.0000001 1e-07 1 555 4 1 2 3 4 
+101 -9.99999993922529e-08 -1e-07 -9.99999993922529e-08 20.0000001 1e-07 20.0000001 1 551 4 5 7 -6 -1 
+102 19.9999999 -9.99999993922529e-08 -9.99999993922529e-08 20.0000001 20.0000001 20.0000001 1 552 4 6 9 -8 -2 
+103 -9.99999993922529e-08 19.9999999 -9.99999993922529e-08 20.0000001 20.0000001 20.0000001 1 553 4 8 11 -10 -3 
+104 -1e-07 -9.99999993922529e-08 -9.99999993922529e-08 1e-07 20.0000001 20.0000001 1 554 4 10 12 -5 -4 
+105 -1.000000100000001 -1.000000100000001 19.9999999 21.0000001 21.0000001 20.0000001 1 556 4 7 9 11 12 
+1 -1.000000100000001 -1.000000100000001 -9.99999993922529e-08 21.0000001 21.0000001 20.0000001 1 11 6 -101 -102 -103 -104 -100 105 
 $EndEntities
 $Nodes
 27 27 1 27
@@ -38,82 +38,82 @@ $Nodes
 0 0 0
 0 2 0 1
 2
-30 0 0
+20 0 0
 0 3 0 1
 3
-30 30 0
+20 20 0
 0 4 0 1
 4
-0 30 0
+0 20 0
 0 5 0 1
 5
-0 0 30
+0 0 20
 0 6 0 1
 6
-30 0 30
+20 0 20
 0 7 0 1
 7
-30 30 30
+20 20 20
 0 8 0 1
 8
-0 30 30
+0 20 20
 1 1 0 1
 9
-15 0 0
+10 0 0
 1 2 0 1
 10
-30 15 0
+20 10 0
 1 3 0 1
 11
-15 30 0
+10 20 0
 1 4 0 1
 12
-0 15 0
+0 10 0
 1 5 0 1
 13
-0 0 15
+0 0 10
 1 6 0 1
 14
-30 0 15
+20 0 10
 1 7 0 1
 15
-15 0 30
+10 0 20
 1 8 0 1
 16
-30 30 15
+20 20 10
 1 9 0 1
 17
-30 15 30
+20 10 20
 1 10 0 1
 18
-0 30 15
+0 20 10
 1 11 0 1
 19
-15 30 30
+10 20 20
 1 12 0 1
 20
-0 15 30
+0 10 20
 2 100 0 1
 21
-15 15 0
+10 10 0
 2 101 0 1
 22
-15 0 15
+10 0 10
 2 102 0 1
 23
-30 15 15
+20 10 10
 2 103 0 1
 24
-15 30 15
+10 20 10
 2 104 0 1
 25
-0 15 15
+0 10 10
 2 105 0 1
 26
-15 15 30
+10 10 20
 3 1 0 1
 27
-15 15 15
+10 10 10
 $EndNodes
 $Elements
 7 7 1 7
diff --git a/dG3D/benchmarks/unitCell-Hill/CMakeLists.txt b/dG3D/benchmarks/unitCell-Hill/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..b1fd65d99c5546150b7e470092138bf6cd9efd3c
--- /dev/null
+++ b/dG3D/benchmarks/unitCell-Hill/CMakeLists.txt
@@ -0,0 +1,11 @@
+# test file
+
+set(PYFILE model.py)
+
+set(FILES2DELETE 
+  disp*.msh  
+  *.csv
+  stress*.msh
+)
+
+add_cm3python_test(${PYFILE} "${FILES2DELETE}")
diff --git a/dG3D/benchmarks/unitCell-Hill/comparison.py b/dG3D/benchmarks/unitCell-Hill/comparison.py
new file mode 100644
index 0000000000000000000000000000000000000000..b2cb99be211e64c15cc69056d2c747925c515fb5
--- /dev/null
+++ b/dG3D/benchmarks/unitCell-Hill/comparison.py
@@ -0,0 +1,42 @@
+import os
+import pandas as pd
+import numpy as np
+import matplotlib.pyplot as plt
+from extractData import *
+
+plt.rcParams.update({'font.size': 16})
+
+
+unit = 1.;
+W0 = 1.;
+lambda0 = 1.;
+f0 = 1e-3;
+Chi0 = np.exp((1./3.)*np.log(1.5*f0*lambda0/W0));
+
+Lr0 = 1*unit;
+Lz0 = lambda0*Lr0;
+Rr0 = Chi0*Lr0;
+Rz0 = W0*Rr0;
+
+f0 = 2*Rr0*Rr0*Rz0/(3*Lr0*Lr0*Lz0)
+print(f"initial porosity f0 = {f0}")
+
+
+fig, axes = plt.subplots(1,2, figsize=(8,5))
+plt.tight_layout()
+
+for folder, ltpe in zip(["J2","J2-newImp","Hill-0","Hill-1"],["r-","g.","b:", "k-."]):
+  sigE, sigH, f, lamb, W, Chi, Er, Ez, Ee, sigZ = extractData(folder,f0,Lr0,Lz0,Rr0,Rz0,T=2)
+  axes[0].plot(Ee, sigE, ltpe, label=folder)
+  axes[1].plot(Ee, f, ltpe,label=folder)
+  
+axes[0].set_xlabel(r"$E_{eq}$ [-]")
+axes[0].set_ylabel(r"$\Sigma_{eq}$ (MPa)")
+axes[1].set_xlabel(r"$E_{eq}$ [-]")
+axes[1].set_ylabel(r"f [-]")
+
+axes[0].legend(loc="lower center",framealpha=0)
+axes[1].legend(framealpha=0)
+
+plt.savefig("comparison.svg",bbox_inches="tight")
+plt.show()
diff --git a/dG3D/benchmarks/unitCell-Hill/extractData.py b/dG3D/benchmarks/unitCell-Hill/extractData.py
new file mode 100644
index 0000000000000000000000000000000000000000..4cf639eed413e38f0a96ca731f7b521a7f019c52
--- /dev/null
+++ b/dG3D/benchmarks/unitCell-Hill/extractData.py
@@ -0,0 +1,39 @@
+
+import os
+import pandas as pd
+import numpy as np
+
+def extractData(folder,f0,Lr0,Lz0,Rr0,Rz0,T):
+  uz = pd.read_csv(os.path.join(folder, "NodalDisplacementPhysical3Num4comp2.csv"), sep=";", header=None)
+  ur = pd.read_csv(os.path.join(folder, "NodalDisplacementPhysical3Num4comp0.csv"), sep=";", header=None)
+  fz = pd.read_csv(os.path.join(folder, "force1comp2.csv"), sep=";", header=None)
+  JV = pd.read_csv(os.path.join(folder, "VolumeIntegral_JACOBIAN.csv"), sep=";", header=None)
+  Wpl =pd.read_csv(os.path.join(folder, "VolumeIntegral_PLASTIC_ENERGY.csv"), sep=";", header=None)
+  uRz = pd.read_csv(os.path.join(folder, "NodalDisplacementPhysical5Num6comp2.csv"), sep=";", header=None)
+  uRr = pd.read_csv(os.path.join(folder, "NodalDisplacementPhysical1Num2comp0.csv"), sep=";", header=None)
+  
+  Lz = Lz0+uz.values[:,1];
+  Lr = Lr0+ur.values[:,1];
+
+  Rz = Rz0+uRz.values[:,1];
+  Rr = Rr0+uRr.values[:,1];
+
+  Er = np.log(Lr/Lr0);
+  Ez = np.log(Lz/Lz0);
+  Ee = 2.*np.abs(Ez-Er)/3.;
+
+  lamb = Lz/Lr; 
+  W = Rz/Rr;
+  Chi = Rr/Lr;
+
+  sigZ = -fz.values[:,1]/(np.pi*Lr*Lr);
+  sigR = (T-1./3.)/(T+2./3.)*sigZ;
+
+  sigE = np.abs(sigZ-sigR);
+  sigH = (2*sigR+sigZ)/3.;
+
+  V0 = np.pi*Lr0*Lr0*Lz0;
+  V = np.pi*Lr*Lr*Lz;
+
+  f = (V-JV.values[:,1])/V;
+  return sigE, sigH, f, lamb, W, Chi, Er, Ez, Ee, sigZ
diff --git a/dG3D/benchmarks/unitCell-Hill/model.py b/dG3D/benchmarks/unitCell-Hill/model.py
new file mode 100644
index 0000000000000000000000000000000000000000..4669a0f5f7e79ecd313977788881243c20daeebf
--- /dev/null
+++ b/dG3D/benchmarks/unitCell-Hill/model.py
@@ -0,0 +1,137 @@
+#coding-Utf-8-*-
+from gmshpy import *
+from dG3Dpy import*
+from math import*
+
+
+lawnum1 = 11 # unique number of law
+rho   = 7850
+young = 205.4e3 #MPa
+nu    = 0.3 
+sy0   = 862.4 #MPa
+h = 3399.
+p1 = 0.012
+n1 = 0.084
+p2 = 0.056
+n2 = 0.058
+
+harden = LinearFollowedByMultiplePowerLawJ2IsotropicHardening(lawnum1,sy0,h,p1,n1,p2,n2)
+law1   = AnisotropicPlasticityDG3DMaterialLaw(lawnum1,"Hill48",rho,young,nu,harden,1e-8,False,1e-8)
+params = vectorDouble(6)
+hLL = 1.5 # longitudinal
+hTT = 0.8 # transversal
+hNN = 1. # thickness
+hLT = 0.5
+hLN = 1.1
+hTN = 0.5
+params[0]=hLL
+params[1]=hTT
+params[2]=hNN
+params[3]=hLT
+params[4]=hLN
+params[5]=hTN
+law1.setYieldParameters(params)  
+
+
+law1.setStrainOrder(9)
+
+
+# geometry
+meshfile="modelW1.msh" # name of mesh file
+
+# solver
+sol = 2  # Gmm=0 (default) Taucs=1 PETsc=2
+soltype = 1 # StaticLinear=0 (default) StaticNonLinear=1
+nstep = 10   # number of step (used only if soltype=1)
+ftime =1.   # Final time (used only if soltype=1)
+tol=1.e-6 # relative tolerance for NR scheme (used only if soltype=1)
+nstepArch=1 # Number of step between 2 archiving (used only if soltype=1)
+
+
+
+# creation of ElasticField
+myfield1 = axisymmetricDG3DDomain(11,11,0,lawnum1,0,2,0)
+
+# creation of Solver
+mysolver = nonLinearMechSolver(1000)
+mysolver.loadModel(meshfile)
+mysolver.addDomain(myfield1)
+mysolver.addMaterialLaw(law1)
+
+mysolver.Scheme(soltype)
+mysolver.Solver(sol)
+mysolver.snlData(nstep,ftime,tol)
+mysolver.stepBetweenArchiving(nstepArch)
+mysolver.options("-ksp_type preonly -pc_type lu -pc_factor_mat_solver_package mumps")
+
+# BC
+mysolver.displacementBC("Face",11,1,0.)
+mysolver.sameDisplacementBC("Edge",2,3,0)
+mysolver.sameDisplacementBC("Edge",3,3,2)
+mysolver.displacementBC("Edge",4,0,0.)
+mysolver.displacementBC("Edge",1,2,0.)
+
+method=0
+mysolver.pathFollowing(True,method)
+if method==0:
+	mysolver.setPathFollowingIncrementAdaptation(True,6,1)
+	mysolver.setPathFollowingControlType(0)
+	mysolver.setPathFollowingCorrectionMethod(0)
+	mysolver.setPathFollowingArcLengthStep(2e-1)
+	mysolver.setBoundsOfPathFollowingArcLengthSteps(0,2.5);
+elif method==1:
+	mysolver.setPathFollowingIncrementAdaptation(False,5)
+	mysolver.setPathFollowingLocalSteps(1e-1,1e-2)
+	mysolver.setPathFollowingLocalIncrementType(1); 
+	mysolver.setPathFollowingSwitchCriterion(0)
+
+#mysolver.forceBC("Node",3,2,5*1.e3)
+#mysolver.forceBC("Node",3,0,1.e3)
+
+#mysolver.forceBC("Edge",3,2,2.5e3)
+#mysolver.forceBC("Edge",2,0,1.e3)
+T = 2.
+fact = (T-1./3.)/(T+2./3)
+mysolver.pressureOnPhysicalGroupBC("Edge",3,-1e3,0.)
+mysolver.pressureOnPhysicalGroupBC("Edge",2,-fact*1e3,0.)
+
+
+mysolver.internalPointBuildView("P_xx",IPField.P_XX, 1, 1)
+mysolver.internalPointBuildView("P_yy",IPField.P_YY, 1, 1)
+mysolver.internalPointBuildView("P_zz",IPField.P_ZZ, 1, 1)
+mysolver.internalPointBuildView("P_xz",IPField.P_XZ, 1, 1)
+mysolver.internalPointBuildView("P_zx",IPField.P_ZX, 1, 1)
+
+mysolver.internalPointBuildView("F_xx",IPField.F_XX, 1, 1)
+mysolver.internalPointBuildView("F_yy",IPField.F_YY, 1, 1)
+mysolver.internalPointBuildView("F_zz",IPField.F_ZZ, 1, 1)
+mysolver.internalPointBuildView("F_xz",IPField.F_XZ, 1, 1)
+mysolver.internalPointBuildView("F_zx",IPField.F_ZX, 1, 1)
+
+mysolver.internalPointBuildView("svm",IPField.SVM, 1, 1)
+mysolver.internalPointBuildView("sig_xx",IPField.SIG_XX, 1, 1)
+mysolver.internalPointBuildView("sig_yy",IPField.SIG_YY, 1, 1)
+mysolver.internalPointBuildView("sig_zz",IPField.SIG_ZZ, 1, 1)
+mysolver.internalPointBuildView("sig_xy",IPField.SIG_XY, 1, 1)
+mysolver.internalPointBuildView("sig_yz",IPField.SIG_YZ, 1, 1)
+mysolver.internalPointBuildView("sig_xz",IPField.SIG_XZ, 1, 1)
+mysolver.internalPointBuildView("epl",IPField.PLASTICSTRAIN, 1, 1)
+
+mysolver.archivingForceOnPhysicalGroup("Edge",1, 2)
+mysolver.archivingForceOnPhysicalGroup("Edge",4, 0)
+mysolver.archivingNodeDisplacement(1,0)
+mysolver.archivingNodeDisplacement(5,2)
+mysolver.archivingNodeDisplacement(6,0)
+mysolver.archivingNodeDisplacement(6,2)
+mysolver.archivingNodeDisplacement(3,0)
+mysolver.archivingNodeDisplacement(3,2)
+
+mysolver.archivingVolumeIntegralValue(IPField.JACOBIAN)
+mysolver.archivingVolumeIntegralValue(IPField.DEFO_ENERGY)
+mysolver.archivingVolumeIntegralValue(IPField.PLASTIC_ENERGY)
+mysolver.archivingVolumeIntegralValue(IPField.DAMAGE_ENERGY)
+
+mysolver.solve()
+
+check = TestCheck()
+check.equal(-7.330003e+03,mysolver.getArchivedForceOnPhysicalGroup("Edge", 1, 2),1e-5)
diff --git a/dG3D/benchmarks/unitCell-Hill/modelW1.geo b/dG3D/benchmarks/unitCell-Hill/modelW1.geo
new file mode 100644
index 0000000000000000000000000000000000000000..70eff44b1e289f8f84008fe613c78956e920287d
--- /dev/null
+++ b/dG3D/benchmarks/unitCell-Hill/modelW1.geo
@@ -0,0 +1,130 @@
+unit = 1.;
+W0 = 1.;
+lambda0 = 1.;
+f0 = 1e-3;
+Chi0 = Exp((1./3.)*Log(1.5*f0*lambda0/W0));
+
+Lr0 = 1*unit;
+Lz0 = lambda0*Lr0;
+Rr0 = Chi0*Lr0;
+Rz0 = W0*Rr0;
+
+f0 = 2*Rr0*Rr0*Rz0/(3*Lr0*Lr0*Lz0);
+Printf("initial porosity = %e",f0);
+
+//Mesh.RecombineAll = 1;
+
+lsca = 0.07*unit;
+Point(1) = {0,0,0,lsca};
+Point(2) = {Rr0,0,0,0.05*lsca};
+Point(3) = {Lr0,0,0,0.3*lsca};
+Point(4) = {Lr0,0,Lz0,lsca};
+Point(5) = {0,0,Lz0,lsca};
+Point(6) = {0,0,Rz0,lsca*0.5};
+
+z7 = 2*Rz0;
+Point(7) = {0,0,z7,lsca};
+
+x8 = 2*Rr0;
+Point(8) = {x8,0,0,lsca};
+
+z9 = Sqrt(0.5)*Rz0;
+x9 = Rr0*Sqrt(1.-z9*z9/Rz0/Rz0);
+Point(9) = {x9,0,z9,lsca*0.05};
+
+x10 = 2*Rr0-0.4*Rr0;
+z10 = z7 - 0.4*Rz0;
+Point(10) = {x10,0,z10,lsca*0.05};
+
+x11 = 2*Rr0;
+Point(11) = {x11,0,Lz0,lsca*0.05};
+
+z12 = z7;
+Point(12) = {Lr0,0,z12,lsca*0.05};
+
+
+//+
+Ellipse(1) = {2, 1, 2, 9};
+Ellipse(2) = {9, 1, 6, 6};
+
+//+
+Line(3) = {6, 7};
+//+
+Line(4) = {7, 5};
+//+
+Line(5) = {5, 11};
+//+
+Line(6) = {11, 4};
+//+
+Line(7) = {4, 12};
+//+
+Line(8) = {12, 3};
+//+
+Line(9) = {3, 8};
+//+
+Line(10) = {8, 2};
+//+
+Line(11) = {12, 10};
+//+
+Line(12) = {10, 11};
+//+
+Line(13) = {10, 7};
+//+
+Line(14) = {10, 9};
+//+
+Line(15) = {10, 8};
+//+
+Line Loop(1) = {6, 7, 11, 12};
+//+
+Plane Surface(1) = {1};
+//+
+Line Loop(2) = {12, -5, -4, -13};
+//+
+Plane Surface(2) = {2};
+//+
+Line Loop(3) = {3, -13, 14, 2};
+//+
+Plane Surface(3) = {3};
+//+
+Line Loop(4) = {10, 1, -14, 15};
+//+
+Plane Surface(4) = {4};
+//+
+Line Loop(5) = {15, -9, -8, 11};
+//+
+Plane Surface(5) = {5};
+//+
+Physical Surface(11) = {2, 1, 5, 4, 3};
+//+
+Physical Line(1) = {10, 9};
+//+
+Physical Line(2) = {8, 7};
+//+
+Physical Line(3) = {6, 5};
+//+
+Physical Line(4) = {4, 3};
+//+
+Physical Point(1) = {2};
+//+
+Physical Point(2) = {3};
+//+
+Physical Point(3) = {4};
+//+
+Physical Point(4) = {5};
+//+
+Physical Point(5) = {6};
+//+
+Physical Point(6) = {9};
+//+
+Transfinite Line {6, 11, 9} = 20 Using Progression 1;
+//+
+Transfinite Line {7, 12, 4} = 11 Using Progression 1;
+//+
+Transfinite Line {5, 13, 2} = 11 Using Progression 1.;
+//+
+Transfinite Line {-8, -15, 1} = 16 Using Progression 1.08;
+//+
+Transfinite Line {-10, -14, 3} = 11 Using Progression 1.04;
+//+
+Transfinite Surface {2, 1, 5, 4, 3};
+Recombine Surface{2, 1, 5, 4, 3};
diff --git a/dG3D/benchmarks/unitCell-Hill/modelW1.msh b/dG3D/benchmarks/unitCell-Hill/modelW1.msh
new file mode 100644
index 0000000000000000000000000000000000000000..831fae960afa8a6e3422dfcb0a634e7ee91a7fc6
--- /dev/null
+++ b/dG3D/benchmarks/unitCell-Hill/modelW1.msh
@@ -0,0 +1,7886 @@
+$MeshFormat
+4.1 0 8
+$EndMeshFormat
+$Entities
+12 15 5 0
+1 0 0 0 0 
+2 0.1144714242553332 0 0 1 1 
+3 1 0 0 1 2 
+4 1 0 1 1 3 
+5 0 0 1 1 4 
+6 0 0 0.1144714242553332 1 5 
+7 0 0 0.2289428485106664 0 
+8 0.2289428485106664 0 0 0 
+9 0.08094352034302833 0 0.08094352034302835 1 6 
+10 0.1831542788085331 0 0.1831542788085331 0 
+11 0.2289428485106664 0 1 0 
+12 1 0 0.2289428485106664 0 
+1 0.08094352034302832 0 0 0.1144714242553332 0 0.08094352034302835 0 2 2 -9 
+2 0 0 0.08094352034302833 0.08094352034302832 0 0.1144714242553332 0 2 9 -6 
+3 0 0 0.1144714242553332 0 0 0.2289428485106664 1 4 2 6 -7 
+4 0 0 0.2289428485106664 0 0 1 1 4 2 7 -5 
+5 0 0 1 0.2289428485106664 0 1 1 3 2 5 -11 
+6 0.2289428485106664 0 1 1 0 1 1 3 2 11 -4 
+7 1 0 0.2289428485106664 1 0 1 1 2 2 4 -12 
+8 1 0 0 1 0 0.2289428485106664 1 2 2 12 -3 
+9 0.2289428485106664 0 0 1 0 0 1 1 2 3 -8 
+10 0.1144714242553332 0 0 0.2289428485106664 0 0 1 1 2 8 -2 
+11 0.1831542788085332 0 0.1831542788085331 1 0 0.2289428485106664 0 2 12 -10 
+12 0.1831542788085331 0 0.1831542788085331 0.2289428485106664 0 1 0 2 10 -11 
+13 0 0 0.1831542788085331 0.1831542788085331 0 0.2289428485106664 0 2 10 -7 
+14 0.08094352034302833 0 0.08094352034302835 0.1831542788085331 0 0.1831542788085331 0 2 10 -9 
+15 0.1831542788085331 0 0 0.2289428485106664 0 0.1831542788085331 0 2 10 -8 
+1 0.1831542788085331 0 0.1831542788085331 1 0 1 1 11 4 6 7 11 12 
+2 0 0 0.1831542788085331 0.2289428485106664 0 1 1 11 4 12 -5 -4 -13 
+3 0 0 0.08094352034302833 0.1831542788085331 0 0.2289428485106664 1 11 4 3 -13 14 2 
+4 0.08094352034302832 0 0 0.2289428485106664 0 0.1831542788085331 1 11 4 10 1 -14 15 
+5 0.1831542788085331 0 0 1 0 0.2289428485106664 1 11 4 15 -9 -8 11 
+$EndEntities
+$Nodes
+31 3429 1 3429
+0 2 0 1
+1
+0.1144714242553332 0 0
+0 3 0 1
+2
+1 0 0
+0 4 0 1
+3
+1 0 1
+0 5 0 1
+4
+0 0 1
+0 6 0 1
+5
+0 0 0.1144714242553332
+0 7 0 1
+6
+0 0 0.2289428485106664
+0 8 0 1
+7
+0.2289428485106664 0 0
+0 9 0 1
+8
+0.08094352034302833 0 0.08094352034302835
+0 10 0 1
+9
+0.1831542788085331 0 0.1831542788085331
+0 11 0 1
+10
+0.2289428485106664 0 1
+0 12 0 1
+11
+1 0 0.2289428485106664
+1 1 0 29
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+0.1144235381751203 0 0.003310722357926874
+0.1142642979650617 0 0.006883108425419668
+0.1139670830354398 0 0.01073363663618546
+0.1135004033570193 0 0.01487835370054105
+0.1128271652914333 0 0.01933229793232214
+0.111903870300848 0 0.02410872835168795
+0.110679759112017 0 0.02921810900709326
+0.1090959250715778 0 0.03466678675362284
+0.1070844362356546 0 0.04045528997716492
+0.1045675284755073 0 0.04657616299748676
+0.1014569628090837 0 0.05301124096454166
+0.09765368253921315 0 0.05972826179937821
+0.09304796248281967 0 0.06667670994312982
+0.08752031608525934 0 0.07378279774704115
+0.1144594521092167 0 0.00165553432534987
+0.1143578684882567 0 0.005097537235477503
+0.1141319300643747 0 0.008809626032083606
+0.1137526219975546 0 0.01280812085069298
+0.1131856947116999 0 0.01710863769194831
+0.1123908944774024 0 0.02172541851412493
+0.1113211321505056 0 0.02667044258676936
+0.1099216078027383 0 0.0319522629731523
+0.1081289223383099 0 0.03757450099469374
+0.1058702262798221 0 0.04353391963175109
+0.1030624825504462 0 0.04981798532240592
+0.0996119564378487 0 0.05640181828335519
+0.09541409532325117 0 0.06324442572029589
+0.09035402552081596 0 0.07028411657855722
+0.08430797727706929 0 0.07743301581685717
+1 2 0 19
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+0.07434324307036241 0 0.08704475389605905
+0.06728461496540039 0 0.0926093276079807
+0.05981115481637503 0 0.09760293402647331
+0.05196893902633148 0 0.1019947858839947
+0.04380631743741209 0 0.1057578059701371
+0.03537361537405134 0 0.1088687939972385
+0.02672282323422959 0 0.1113085697034896
+0.01790727598757458 0 0.1130620910727788
+0.008981324414803475 0 0.1141185470587517
+0.07770328811955765 0 0.08405894352449056
+0.07086856611499304 0 0.08989634757791522
+0.06359691581601047 0 0.09517951076642367
+0.05593316936603627 0 0.0998758606256526
+0.04792457634384673 0 0.1039564425772029
+0.03962051238365374 0 0.1073960984836098
+0.03107217481315366 0 0.1101736217223765
+0.02233226698026233 0 0.1122718879442524
+0.0134546732706872 0 0.1136779606529935
+0.004494127008582031 0 0.1143831709364416
+1 3 0 19
+60
+61
+62
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75
+76
+77
+78
+0 0 0.1240058573015336
+0 0 0.1339216676602923
+0 0 0.1442341104296807
+0 0 0.1549590508882251
+0 0 0.1661129889623617
+0 0 0.1777130845791713
+0 0 0.1897771840074287
+0 0 0.2023238474086638
+0 0 0.2153723773538611
+0 0 0.119238640778438
+0 0 0.128963762480919
+0 0 0.1390778890449875
+0 0 0.149596580658948
+0 0 0.1605360199252996
+0 0 0.171913036770748
+0 0 0.1837451342932976
+0 0 0.1960505157080136
+0 0 0.2088481123812614
+0 0 0.2221576129322908
+1 4 0 19
+79
+80
+81
+82
+83
+84
+85
+86
+87
+88
+89
+90
+91
+92
+93
+94
+95
+96
+97
+0 0 0.3060485636594935
+0 0 0.3831542788082164
+0 0 0.4602599939569155
+0 0 0.5373657091056276
+0 0 0.6144714242543247
+0 0 0.6915771394034511
+0 0 0.7686828545525903
+0 0 0.8457885697017126
+0 0 0.9228942848508347
+0 0 0.2674957060850544
+0 0 0.3446014212338878
+0 0 0.4217071363825706
+0 0 0.4988128515312713
+0 0 0.5759185666800118
+0 0 0.6530242818288925
+0 0 0.7301299969780469
+0 0 0.8072357121271263
+0 0 0.8843414272762943
+0 0 0.961447142425407
+1 5 0 19
+98
+99
+100
+101
+102
+103
+104
+105
+106
+107
+108
+109
+110
+111
+112
+113
+114
+115
+116
+0.02289428485102339 0 1
+0.04578856970203076 0 1
+0.0686828545530266 0 1
+0.09157713940402648 0 1
+0.1144714242550302 0 1
+0.1373657091061509 0 1
+0.1602599939572798 0 1
+0.1831542788084086 0 1
+0.2060485636595376 0 1
+0.01144714242550991 0 1
+0.03434142727652926 0 1
+0.05723571212753242 0 1
+0.08012999697852891 0 1
+0.1030242818295296 0 1
+0.1259185666805883 0 1
+0.1488128515317205 0 1
+0.1717071363828489 0 1
+0.1946014212339731 0 1
+0.2174957060850969 0 1
+1 6 0 37
+117
+118
+119
+120
+121
+122
+123
+124
+125
+126
+127
+128
+129
+130
+131
+132
+133
+134
+135
+136
+137
+138
+139
+140
+141
+142
+143
+144
+145
+146
+147
+148
+149
+150
+151
+152
+153
+0.2695248038521554 0 1
+0.3101067591936445 0 1
+0.3506887145350748 0 1
+0.3912706698765142 0 1
+0.4318526252179159 0 1
+0.4724345805593576 0 1
+0.5130165359007646 0 1
+0.5535984912422125 0 1
+0.5941804465836126 0 1
+0.6347624019251177 0 1
+0.6753443572667667 0 1
+0.7159263126084634 0 1
+0.7565082679500894 0 1
+0.7970902232917589 0 1
+0.8376721786333724 0 1
+0.878254133975051 0 1
+0.9188360893166645 0 1
+0.9594180446583374 0 1
+0.2492338261813987 0 1
+0.2898157815228807 0 1
+0.3303977368643629 0 1
+0.370979692205806 0 1
+0.4115616475472191 0 1
+0.452143602888634 0 1
+0.4927255582300829 0 1
+0.5333075135714996 0 1
+0.5738894689129423 0 1
+0.6144714242543104 0 1
+0.6550533795959562 0 1
+0.6956353349376376 0 1
+0.7362172902792777 0 1
+0.7767992456209186 0 1
+0.8173812009625548 0 1
+0.8579631563042126 0 1
+0.8985451116458819 0 1
+0.9391270669874955 0 1
+0.9797090223291632 0 1
+1 7 0 19
+154
+155
+156
+157
+158
+159
+160
+161
+162
+163
+164
+165
+166
+167
+168
+169
+170
+171
+172
+1 0 0.9228942848512012
+1 0 0.8457885697024586
+1 0 0.7686828545537637
+1 0 0.6915771394050256
+1 0 0.6144714242563307
+1 0 0.5373657091072326
+1 0 0.4602599939580563
+1 0 0.3831542788089408
+1 0 0.3060485636598252
+1 0 0.9614471424256051
+1 0 0.8843414272767801
+1 0 0.8072357121280925
+1 0 0.7301299969793958
+1 0 0.6530242818307028
+1 0 0.5759185666818245
+1 0 0.4988128515326569
+1 0 0.421707136383498
+1 0 0.3446014212344707
+1 0 0.26749570608527
+1 8 0 29
+173
+174
+175
+176
+177
+178
+179
+180
+181
+182
+183
+184
+185
+186
+187
+188
+189
+190
+191
+192
+193
+194
+195
+196
+197
+198
+199
+200
+201
+1 0 0.2041768404556829
+1 0 0.1812453513999235
+1 0 0.1600124911909048
+1 0 0.1403524354968672
+1 0 0.122148680248608
+1 0 0.1052933512837291
+1 0 0.08968656524331542
+1 0 0.0752358373836213
+1 0 0.06185553368483096
+1 0 0.04946636359018303
+1 0 0.03799490985680357
+1 0 0.0273731935177797
+1 0 0.01753827091918791
+1 0 0.008431861021949733
+1 0 0.216559844483166
+1 0 0.1927110959277934
+1 0 0.1706289212954093
+1 0 0.1501824633438882
+1 0 0.1312505578727438
+1 0 0.113721015766191
+1 0 0.09748995826352608
+1 0 0.08246120131347159
+1 0 0.0685456855342268
+1 0 0.05566094863750448
+1 0 0.04373063672348965
+1 0 0.03268405168729341
+1 0 0.02245573221848618
+1 0 0.01298506597056881
+1 0 0.00421593051097488
+1 9 0 37
+202
+203
+204
+205
+206
+207
+208
+209
+210
+211
+212
+213
+214
+215
+216
+217
+218
+219
+220
+221
+222
+223
+224
+225
+226
+227
+228
+229
+230
+231
+232
+233
+234
+235
+236
+237
+238
+0.9594180446585577 0 0
+0.9188360893170504 0 0
+0.8782541339755864 0 0
+0.8376721786341659 0 0
+0.7970902232927384 0 0
+0.7565082679513245 0 0
+0.7159263126098823 0 0
+0.6753443572684594 0 0
+0.634762401927041 0 0
+0.5941804465855474 0 0
+0.5535984912438745 0 0
+0.5130165359022187 0 0
+0.4724345805605562 0 0
+0.4318526252188902 0 0
+0.3912706698772801 0 0
+0.350688714535605 0 0
+0.3101067591939949 0 0
+0.2695248038523255 0 0
+0.9797090223292666 0 0
+0.9391270669877942 0 0
+0.8985451116463153 0 0
+0.8579631563048773 0 0
+0.8173812009634533 0 0
+0.7767992456220632 0 0
+0.7362172902805826 0 0
+0.6956353349391715 0 0
+0.6550533795977449 0 0
+0.6144714242563674 0 0
+0.5738894689147478 0 0
+0.5333075135730303 0 0
+0.492725558231389 0 0
+0.4521436028897767 0 0
+0.4115616475480972 0 0
+0.3709796922063827 0 0
+0.3303977368648076 0 0
+0.2898157815231627 0 0
+0.2492338261815059 0 0
+1 10 0 19
+239
+240
+241
+242
+243
+244
+245
+246
+247
+248
+249
+250
+251
+252
+253
+254
+255
+256
+257
+0.2153723773781112 0 0
+0.2023238474243991 0 0
+0.1897771840152548 0 0
+0.177713084579672 0 0
+0.1661129889560266 0 0
+0.1549590508755068 0 0
+0.1442341104111095 0 0
+0.1339216676363327 0 0
+0.1240058572726187 0 0
+0.2221576129443754 0 0
+0.2088481124012538 0 0
+0.1960505157198421 0 0
+0.1837451342974532 0 0
+0.1719130367678781 0 0
+0.1605360199157749 0 0
+0.1495965806433142 0 0
+0.1390778890237411 0 0
+0.1289637624544853 0 0
+0.1192386407639763 0 0
+1 11 0 37
+258
+259
+260
+261
+262
+263
+264
+265
+266
+267
+268
+269
+270
+271
+272
+273
+274
+275
+276
+277
+278
+279
+280
+281
+282
+283
+284
+285
+286
+287
+288
+289
+290
+291
+292
+293
+294
+0.9570081199373793 0 0.2265329237895064
+0.9140162398747802 0 0.2241229990683477
+0.8710243598122245 0 0.2217130743471913
+0.8280324797496024 0 0.2193031496260313
+0.7850405996869831 0 0.2168932249048714
+0.742048719624418 0 0.2144833001837145
+0.699056839561853 0 0.2120733754625577
+0.6560649594992047 0 0.2096634507413962
+0.6130730794365939 0 0.2072535260202368
+0.570081199373949 0 0.2048436012990754
+0.5270893193110835 0 0.2024336765779017
+0.4840974392482496 0 0.2000237518567298
+0.4411055591854048 0 0.1976138271355573
+0.3981136791226285 0 0.1952039024143886
+0.3551217990597967 0 0.1927939776932168
+0.3121299189970026 0 0.1903840529720471
+0.2691380389341429 0 0.1879741282508737
+0.2261461588713281 0 0.1855642035297029
+0.9785040599686866 0 0.2277378861500862
+0.9355121799060923 0 0.2253279614289277
+0.8925202998434864 0 0.2229180367077686
+0.8495284197809111 0 0.2205081119866112
+0.8065365397182687 0 0.21809818726545
+0.7635446596557522 0 0.2156882625442959
+0.7205527795931359 0 0.2132783378231362
+0.6775608995305151 0 0.2108684131019762
+0.6345690194678815 0 0.2084584883808155
+0.5915771394053406 0 0.20604856365966
+0.5485852593425236 0 0.203638638938489
+0.5055933792796854 0 0.2012287142173168
+0.462601499216833 0 0.1988187894961439
+0.4196096191540196 0 0.1964088647749731
+0.376617739091213 0 0.1939989400538027
+0.3336258590283853 0 0.1915890153326311
+0.2906339789655791 0 0.1891790906114608
+0.2476420989027356 0 0.1867691658902883
+0.2046502188399432 0 0.1843592411691187
+1 12 0 19
+295
+296
+297
+298
+299
+300
+301
+302
+303
+304
+305
+306
+307
+308
+309
+310
+311
+312
+313
+0.187733135778738 0 0.2648388509275292
+0.192311992748941 0 0.3465234230464911
+0.1968908497191418 0 0.4282079951654151
+0.2014697066893406 0 0.5098925672843025
+0.2060485636595369 0 0.5915771394031443
+0.2106274206297686 0 0.6732617115226187
+0.215206277599995 0 0.7549462836419989
+0.2197851345702199 0 0.8366308557613531
+0.2243639915404487 0 0.9183154278807755
+0.1854437072936349 0 0.2239965648680195
+0.190022564263841 0 0.3056811369870369
+0.1946014212340419 0 0.3873657091059616
+0.1991802782042401 0 0.4690502812248385
+0.2037591351744383 0 0.5507348533437149
+0.2083379921446503 0 0.6324194254628392
+0.212916849114879 0 0.7141039975822592
+0.2174957060851074 0 0.7957885697016758
+0.2220745630553304 0 0.8774731418209947
+0.2266534200255598 0 0.959157713940427
+1 13 0 19
+314
+315
+316
+317
+318
+319
+320
+321
+322
+323
+324
+325
+326
+327
+328
+329
+330
+331
+332
+0.1648388509277237 0 0.1877331357787355
+0.1465234230469079 0 0.1923119927489395
+0.1282079951660964 0 0.1968908497191423
+0.1098925672852944 0 0.2014697066893428
+0.09157713940449101 0 0.2060485636595437
+0.07326171152359436 0 0.2106274206297678
+0.05494628364270507 0 0.2152062775999901
+0.0366308557618038 0 0.2197851345702155
+0.01831542788090942 0 0.2243639915404391
+0.1739965648681293 0 0.1854437072936341
+0.1556811369873063 0 0.1900225642638398
+0.137365709106501 0 0.1946014212340411
+0.1190502812256857 0 0.199180278204245
+0.1007348533448953 0 0.2037591351744426
+0.08241942546403361 0 0.208337992144658
+0.06410399758315459 0 0.2129168491148778
+0.04578856970225112 0 0.2174957060851036
+0.02747314182136171 0 0.222074563055326
+0.009157713940463219 0 0.2266534200255506
+1 14 0 19
+333
+334
+335
+336
+337
+338
+339
+340
+341
+342
+343
+344
+345
+346
+347
+348
+349
+350
+351
+0.171037297158182 0 0.171037297158182
+0.1593863532470352 0 0.1593863532470352
+0.1481835225702688 0 0.1481835225702688
+0.1374115699931462 0 0.1374115699931463
+0.1270539232732193 0 0.1270539232732193
+0.1170946475980702 0 0.1170946475980702
+0.1075184209852189 0 0.1075184209852189
+0.09831051076219954 0 0.09831051076219956
+0.08945675092939973 0 0.08945675092939974
+0.1770957879833571 0 0.1770957879833571
+0.1652118252025942 0 0.1652118252025942
+0.1537849379086454 0 0.1537849379086455
+0.1427975462817117 0 0.1427975462817117
+0.1322327466331965 0 0.1322327466331965
+0.1220742854356444 0 0.1220742854356444
+0.1123065342916434 0 0.1123065342916434
+0.1029144658737102 0 0.1029144658737102
+0.09388363084580836 0 0.09388363084580838
+0.08520013563621376 0 0.08520013563621377
+1 15 0 29
+352
+353
+354
+355
+356
+357
+358
+359
+360
+361
+362
+363
+364
+365
+366
+367
+368
+369
+370
+371
+372
+373
+374
+375
+376
+377
+378
+379
+380
+0.1881074804246676 0 0.1633414723439953
+0.1926937782402013 0 0.1449962810818604
+0.196940350285711 0 0.1280099928998217
+0.2008723614276172 0 0.1122819483321969
+0.2045131124798395 0 0.09771894412330759
+0.2078841782749123 0 0.08423468094301632
+0.2110055354846798 0 0.07174925210394638
+0.2138956810588974 0 0.06018866980707598
+0.2165717417992956 0 0.04948442684548313
+0.219049575818339 0 0.03957309076930959
+0.2213438665654886 0 0.03039592778071132
+0.2234682098335546 0 0.0218985547084472
+0.2254351943537314 0 0.01403061662774022
+0.22725647633273 0 0.006745488711745545
+0.1856308796166004 0 0.1732478755762639
+0.1904006293324341 0 0.1541688767129293
+0.1948170642629567 0 0.1365031369908388
+0.1989063558566625 0 0.1201459706160157
+0.2026927369537281 0 0.1050004462277531
+0.2061986453773715 0 0.0909768125331796
+0.2094448568797954 0 0.07799196652348384
+0.2124506082717884 0 0.06596896095551215
+0.2152337114290974 0 0.05483654832627616
+0.2178106588088158 0 0.04452875880740237
+0.2201967211919144 0 0.03498450927500796
+0.2224060381995223 0 0.02614724124457649
+0.224451702093643 0 0.01796458566809372
+0.2263458353432309 0 0.01038805266974183
+0.2280996624216989 0 0.003372744355870178
+2 1 0 703
+381
+382
+383
+384
+385
+386
+387
+388
+389
+390
+391
+392
+393
+394
+395
+396
+397
+398
+399
+400
+401
+402
+403
+404
+405
+406
+407
+408
+409
+410
+411
+412
+413
+414
+415
+416
+417
+418
+419
+420
+421
+422
+423
+424
+425
+426
+427
+428
+429
+430
+431
+432
+433
+434
+435
+436
+437
+438
+439
+440
+441
+442
+443
+444
+445
+446
+447
+448
+449
+450
+451
+452
+453
+454
+455
+456
+457
+458
+459
+460
+461
+462
+463
+464
+465
+466
+467
+468
+469
+470
+471
+472
+473
+474
+475
+476
+477
+478
+479
+480
+481
+482
+483
+484
+485
+486
+487
+488
+489
+490
+491
+492
+493
+494
+495
+496
+497
+498
+499
+500
+501
+502
+503
+504
+505
+506
+507
+508
+509
+510
+511
+512
+513
+514
+515
+516
+517
+518
+519
+520
+521
+522
+523
+524
+525
+526
+527
+528
+529
+530
+531
+532
+533
+534
+535
+536
+537
+538
+539
+540
+541
+542
+543
+544
+545
+546
+547
+548
+549
+550
+551
+552
+553
+554
+555
+556
+557
+558
+559
+560
+561
+562
+563
+564
+565
+566
+567
+568
+569
+570
+571
+572
+573
+574
+575
+576
+577
+578
+579
+580
+581
+582
+583
+584
+585
+586
+587
+588
+589
+590
+591
+592
+593
+594
+595
+596
+597
+598
+599
+600
+601
+602
+603
+604
+605
+606
+607
+608
+609
+610
+611
+612
+613
+614
+615
+616
+617
+618
+619
+620
+621
+622
+623
+624
+625
+626
+627
+628
+629
+630
+631
+632
+633
+634
+635
+636
+637
+638
+639
+640
+641
+642
+643
+644
+645
+646
+647
+648
+649
+650
+651
+652
+653
+654
+655
+656
+657
+658
+659
+660
+661
+662
+663
+664
+665
+666
+667
+668
+669
+670
+671
+672
+673
+674
+675
+676
+677
+678
+679
+680
+681
+682
+683
+684
+685
+686
+687
+688
+689
+690
+691
+692
+693
+694
+695
+696
+697
+698
+699
+700
+701
+702
+703
+704
+705
+706
+707
+708
+709
+710
+711
+712
+713
+714
+715
+716
+717
+718
+719
+720
+721
+722
+723
+724
+725
+726
+727
+728
+729
+730
+731
+732
+733
+734
+735
+736
+737
+738
+739
+740
+741
+742
+743
+744
+745
+746
+747
+748
+749
+750
+751
+752
+753
+754
+755
+756
+757
+758
+759
+760
+761
+762
+763
+764
+765
+766
+767
+768
+769
+770
+771
+772
+773
+774
+775
+776
+777
+778
+779
+780
+781
+782
+783
+784
+785
+786
+787
+788
+789
+790
+791
+792
+793
+794
+795
+796
+797
+798
+799
+800
+801
+802
+803
+804
+805
+806
+807
+808
+809
+810
+811
+812
+813
+814
+815
+816
+817
+818
+819
+820
+821
+822
+823
+824
+825
+826
+827
+828
+829
+830
+831
+832
+833
+834
+835
+836
+837
+838
+839
+840
+841
+842
+843
+844
+845
+846
+847
+848
+849
+850
+851
+852
+853
+854
+855
+856
+857
+858
+859
+860
+861
+862
+863
+864
+865
+866
+867
+868
+869
+870
+871
+872
+873
+874
+875
+876
+877
+878
+879
+880
+881
+882
+883
+884
+885
+886
+887
+888
+889
+890
+891
+892
+893
+894
+895
+896
+897
+898
+899
+900
+901
+902
+903
+904
+905
+906
+907
+908
+909
+910
+911
+912
+913
+914
+915
+916
+917
+918
+919
+920
+921
+922
+923
+924
+925
+926
+927
+928
+929
+930
+931
+932
+933
+934
+935
+936
+937
+938
+939
+940
+941
+942
+943
+944
+945
+946
+947
+948
+949
+950
+951
+952
+953
+954
+955
+956
+957
+958
+959
+960
+961
+962
+963
+964
+965
+966
+967
+968
+969
+970
+971
+972
+973
+974
+975
+976
+977
+978
+979
+980
+981
+982
+983
+984
+985
+986
+987
+988
+989
+990
+991
+992
+993
+994
+995
+996
+997
+998
+999
+1000
+1001
+1002
+1003
+1004
+1005
+1006
+1007
+1008
+1009
+1010
+1011
+1012
+1013
+1014
+1015
+1016
+1017
+1018
+1019
+1020
+1021
+1022
+1023
+1024
+1025
+1026
+1027
+1028
+1029
+1030
+1031
+1032
+1033
+1034
+1035
+1036
+1037
+1038
+1039
+1040
+1041
+1042
+1043
+1044
+1045
+1046
+1047
+1048
+1049
+1050
+1051
+1052
+1053
+1054
+1055
+1056
+1057
+1058
+1059
+1060
+1061
+1062
+1063
+1064
+1065
+1066
+1067
+1068
+1069
+1070
+1071
+1072
+1073
+1074
+1075
+1076
+1077
+1078
+1079
+1080
+1081
+1082
+1083
+0.2651869393540685 0 0.9185564203529036
+0.2608490748559711 0 0.8371128407056228
+0.2565112103578775 0 0.755669261058409
+0.2521733458597823 0 0.6742256814111683
+0.2478354813616822 0 0.5927821017638407
+0.2434976168636156 0 0.5113385221170913
+0.2391597523655466 0 0.4298949424702945
+0.2348218878674757 0 0.3484513628234661
+0.2304840233694028 0 0.2670077831766018
+0.3060098871676904 0 0.9187974128250319
+0.3019130151417265 0 0.8375948256498926
+0.2978161431157658 0 0.7563922384748196
+0.2937192710898041 0 0.6751896512997184
+0.2896223990638374 0 0.5939870641245379
+0.2855255270379026 0 0.5127844769498806
+0.2814286550119655 0 0.4315818897751744
+0.2773317829860262 0 0.3503793026004417
+0.2732349109600855 0 0.2691767154256753
+0.3468328349812639 0 0.9190384052971603
+0.3429769554274436 0 0.8380768105941632
+0.3391210758736266 0 0.7571152158912305
+0.3352651963198083 0 0.6761536211882695
+0.3314093167659858 0 0.5951920264852358
+0.3275534372121929 0 0.5142304317826715
+0.3236975576583979 0 0.433268837080056
+0.3198416781046012 0 0.3523072423774196
+0.3159857985508026 0 0.2713456476747512
+0.3876557827948389 0 0.9192793977692885
+0.3840408957131551 0 0.8385587955384327
+0.3804260086314741 0 0.7578381933076407
+0.376811121549792 0 0.6771175910768193
+0.3731962344681058 0 0.5963969888459325
+0.3695813473864475 0 0.5156763866154601
+0.3659664603047872 0 0.4349557843849354
+0.3623515732231253 0 0.3542351821543944
+0.3587366861414618 0 0.2735145799238237
+0.4284787306083841 0 0.9195203902414166
+0.4251048359988437 0 0.8390407804827026
+0.4217309413893066 0 0.7585611707240515
+0.4183570467797681 0 0.6780815609653696
+0.4149831521702257 0 0.5976019512066297
+0.4116092575607097 0 0.5171223414482499
+0.4082353629511917 0 0.436642731689816
+0.404861468341672 0 0.356163121931371
+0.401487573732151 0 0.2756835121728981
+0.4693016784219593 0 0.919761382713545
+0.4661687762845535 0 0.8395227654269724
+0.4630358741471503 0 0.7592841481404613
+0.4599029720097462 0 0.6790455308539189
+0.4567700698723381 0 0.598806913567326
+0.4536371677349545 0 0.5185682962810381
+0.4505042655975692 0 0.4383296789946944
+0.4473713634601825 0 0.358091061708345
+0.4442384613227944 0 0.2778524444219697
+0.5101246262355104 0 0.9200023751856734
+0.5072327165702488 0 0.8400047503712427
+0.5043408069049902 0 0.7600071255568724
+0.5014488972397306 0 0.6800095007424698
+0.4985569875744674 0 0.6000118759280234
+0.4956650779092265 0 0.5200142511138286
+0.4927731682439843 0 0.4400166262995757
+0.4898812585787405 0 0.3600190014853222
+0.4869893489134958 0 0.2800213766710448
+0.5509475740490971 0 0.9202433676578017
+0.5482966568559753 0 0.8404867353155125
+0.5456457396628555 0 0.760730102973283
+0.5429948224697351 0 0.6809734706310204
+0.5403439052766117 0 0.6012168382887212
+0.5376929880835085 0 0.5214602059466185
+0.535042070890404 0 0.4417035736044565
+0.5323911536972983 0 0.3619469412622989
+0.5297402365041916 0 0.2821903089201193
+0.591770521862644 0 0.9204843601299302
+0.5893605971416696 0 0.8409687202597833
+0.5869506724206969 0 0.7614530803896944
+0.5845407476997238 0 0.6819374405195715
+0.5821308229787476 0 0.6024218006494197
+0.5797208982577903 0 0.5229061607794095
+0.5773109735368317 0 0.4433905209093384
+0.5749010488158718 0 0.3638748810392769
+0.572491124094911 0 0.2843592411691954
+0.6325934696762632 0 0.9207253526020576
+0.6304245374274036 0 0.8414507052040512
+0.6282556051785457 0 0.7621760578061019
+0.6260866729296871 0 0.6829014104081178
+0.6239177406808262 0 0.6036267630101118
+0.6217488084319815 0 0.5243521156121931
+0.6195798761831363 0 0.4450774682142118
+0.6174109439342897 0 0.3658028208162452
+0.6152420116854421 0 0.2865281734182604
+0.6734164174900086 0 0.9209663450741848
+0.6714884777132458 0 0.8419326901483186
+0.6695605379364848 0 0.762899035222509
+0.667632598159723 0 0.6838653802966632
+0.6657046583829591 0 0.6048317253708031
+0.6637767186062102 0 0.5257980704449756
+0.66184877882946 0 0.4467644155190837
+0.6599208390527092 0 0.3677307605932117
+0.6579928992759574 0 0.2886971056673237
+0.7142393653038008 0 0.921207337546312
+0.7125524179991338 0 0.8424146750925869
+0.7108654706944691 0 0.7636220126389167
+0.7091785233898028 0 0.6848293501852097
+0.7074915760851352 0 0.6060366877314952
+0.7058046287804803 0 0.5272440252777594
+0.7041176814758248 0 0.4484513628239572
+0.7024307341711683 0 0.3696587003701799
+0.7007437868665111 0 0.2908660379163889
+0.7550623131175208 0 0.9214483300184391
+0.7536163582849488 0 0.842896660036854
+0.7521704034523781 0 0.7643449900553229
+0.7507244486198069 0 0.6857933200737543
+0.7492784937872338 0 0.6072416500921854
+0.7478325389546721 0 0.5286899801105405
+0.7463865841221097 0 0.4501383101288275
+0.7449406292895463 0 0.3715866401471447
+0.7434946744569825 0 0.2930349701654497
+0.7958852609312801 0 0.9216893224905657
+0.7946802985707986 0 0.843378644981121
+0.7934753362103181 0 0.7650679674717293
+0.7922703738498371 0 0.6867572899622989
+0.7910654114893545 0 0.6084466124528756
+0.7898604491288812 0 0.5301359349433213
+0.7886554867684075 0 0.4518252574336978
+0.7874505244079332 0 0.3735145799241092
+0.7862455620474584 0 0.2952039024145109
+0.8367082087449943 0 0.921930314962693
+0.8357442388566142 0 0.8438606299253888
+0.8347802689682347 0 0.7657909448881363
+0.833816299079855 0 0.6877212598508444
+0.8328523291914741 0 0.609651574813567
+0.8318883593031007 0 0.5315818897761041
+0.8309243894147269 0 0.45351220473857
+0.8299604195263526 0 0.3754425197010762
+0.8289964496379777 0 0.2973728346635744
+0.8775311565587678 0 0.9221713074348202
+0.8768081791424827 0 0.8443426148696566
+0.8760852017261982 0 0.7665139223045436
+0.8753622243099134 0 0.6886852297393903
+0.8746392468936279 0 0.6108565371742585
+0.873916269477348 0 0.5330278446088872
+0.8731932920610675 0 0.4551991520434423
+0.8724703146447869 0 0.3773704594780434
+0.8717473372285059 0 0.2995417669126383
+0.9183541043724757 0 0.922412299906947
+0.9178721194282857 0 0.8448245998139234
+0.9173901344840958 0 0.7672368997209497
+0.9169081495399063 0 0.6896491996279345
+0.9164261645957157 0 0.6120614995349486
+0.9159441796515291 0 0.5344737994416676
+0.9154621947073419 0 0.4568860993483123
+0.914980209763155 0 0.3792983992550076
+0.9144982248189679 0 0.3017106991616989
+0.9591770521862414 0 0.9226532923790742
+0.9589360597141449 0 0.8453065847581909
+0.9586950672420482 0 0.7679598771373566
+0.9584540747699519 0 0.6906131695164801
+0.958213082297855 0 0.6132664618956392
+0.9579720898257603 0 0.5359197542744498
+0.9577310973536652 0 0.458573046653184
+0.95749010488157 0 0.3812263390319737
+0.9572491124094746 0 0.3038796314107615
+0.267355871603112 0 0.9592782101764519
+0.2447754654472586 0 0.9184359241168396
+0.2470046458143297 0 0.9592179620584395
+0.2630180071050198 0 0.8778346305292632
+0.2403171047130955 0 0.8368718482334879
+0.2425462850801752 0 0.8776538861751291
+0.2586801426069243 0 0.7963910508820159
+0.2358587439789362 0 0.755307772350204
+0.2380879243460159 0 0.7960898102918459
+0.2543422781088299 0 0.7149474712347887
+0.2314003832447754 0 0.6737436964668935
+0.2336295636118544 0 0.714525734408524
+0.2500044136107322 0 0.6335038915875045
+0.2269420225106095 0 0.5921796205834925
+0.2291712028776913 0 0.6329616585251719
+0.2456665491126489 0 0.552060311940466
+0.2224836617764781 0 0.5106155447006969
+0.2247128421435436 0 0.5513975826420905
+0.2413286846145811 0 0.4706167322936929
+0.2180253010423442 0 0.4290514688178548
+0.2202544814094106 0 0.4698335067592657
+0.2369908201165112 0 0.3891731526468803
+0.2135669403082083 0 0.3474873929349786
+0.2157961206752765 0 0.388269430876421
+0.2326529556184392 0 0.307729573000034
+0.2091085795740704 0 0.2659233170520655
+0.2113377599411401 0 0.3067053549935355
+0.2283150911203654 0 0.2262859933531524
+0.2068793992070064 0 0.2251412791105862
+0.3080583231806674 0 0.959398706412516
+0.2855984132608794 0 0.9186769165889678
+0.2877070973918801 0 0.9593384582944839
+0.3039614511547084 0 0.8781961192374623
+0.2813810449988488 0 0.8373538331777577
+0.2834897291298641 0 0.8780153748833628
+0.2998645791287461 0 0.7969935320623561
+0.2771636767368216 0 0.7560307497666143
+0.2792723608678352 0 0.7966922914721861
+0.2957677071027849 0 0.715790944887269
+0.2729463084747932 0 0.6747076663554434
+0.2750549926058075 0 0.715369208061029
+0.2916708350768207 0 0.6345883577121282
+0.2687289402127598 0 0.5933845829441893
+0.2708376243437765 0 0.6340461246498164
+0.28757396305087 0 0.5533857705372093
+0.2645115719507591 0 0.512061499533486
+0.2666202560817595 0 0.5527230412388376
+0.283477091024934 0 0.4721831833625275
+0.2602942036887561 0 0.4307384161227344
+0.2624028878197576 0 0.4713999578281102
+0.2793802189989958 0 0.390980596187808
+0.256076835426751 0 0.3494153327119539
+0.2581855195577535 0 0.3900768744173442
+0.2752833469730558 0 0.3097780090130585
+0.2518594671647441 0 0.2680922493011386
+0.2539681512957475 0 0.3087537910065463
+0.2711864749471142 0 0.2285754218382745
+0.2497507830337398 0 0.2274307075957134
+0.3487607747581694 0 0.9595192026485801
+0.3264213610744772 0 0.9189179090610962
+0.32840954896942 0 0.9594589545305481
+0.3449048952043537 0 0.8785576079456617
+0.322444985284585 0 0.8378358181220279
+0.3244331731795311 0 0.878376863591562
+0.3410490156505351 0 0.7975960132426969
+0.3184686094946962 0 0.7567537271830251
+0.3204567973896406 0 0.7972947726525265
+0.3371931360967174 0 0.71663441853975
+0.3144922337048062 0 0.675671636243994
+0.3164804215997511 0 0.7162126817135095
+0.3333372565428971 0 0.6356728238367526
+0.3105158579149117 0 0.5945895453048868
+0.3125040458098589 0 0.6351305907744403
+0.3294813769890894 0 0.5547112291339537
+0.3065394821250478 0 0.5135074543662761
+0.3085276700199797 0 0.5540484998355815
+0.3256254974352955 0 0.4737496344313638
+0.3025631063351817 0 0.4324253634276152
+0.3045512942301147 0 0.4729664088969456
+0.3217696178814996 0 0.3927880397287378
+0.2985867305453137 0 0.3513432724889306
+0.3005749184402478 0 0.3918843179582728
+0.3179137383277019 0 0.3118264450260854
+0.294610354755444 0 0.2702611815502133
+0.2965985426503788 0 0.3108022270195719
+0.3140578587739026 0 0.2308648503233991
+0.2926221668605116 0 0.229720136080837
+0.3894632263356765 0 0.9596396988846443
+0.3672443088880514 0 0.9191589015332244
+0.3691120005469286 0 0.9595794507666122
+0.385848339253997 0 0.8789190966538606
+0.3635089255702993 0 0.8383178030662979
+0.3653766172291754 0 0.8787383522997612
+0.3822334521723146 0 0.7981984944230367
+0.3597735422525503 0 0.7574767045994356
+0.3616412339114249 0 0.7978972538328668
+0.3786185650906331 0 0.71747789219223
+0.3560381589348002 0 0.6766356061325445
+0.3579058505936752 0 0.71705615536599
+0.3750036780089488 0 0.6367572899613759
+0.3523027756170458 0 0.5957945076655842
+0.3541704672759231 0 0.6362150568990643
+0.3713887909272767 0 0.5560366877306964
+0.3485673922993202 0 0.5149534091990657
+0.350435083958183 0 0.555373958432325
+0.3677739038456174 0 0.4753160855001978
+0.3448320089815926 0 0.4341123107324957
+0.3466997006404564 0 0.4745328599657807
+0.3641590167639562 0 0.3945954832696649
+0.3410966256638633 0 0.353271212265907
+0.3429643173227279 0 0.3936917614992013
+0.3605441296822935 0 0.313874881039109
+0.3373612423461322 0 0.2724301137992874
+0.3392289340049978 0 0.3128506630325972
+0.3569292426006292 0 0.2331542788085202
+0.3354935506872587 0 0.2320095645659593
+0.43016567791315 0 0.9597601951207083
+0.4080672567016115 0 0.9193998940053525
+0.4098144521244153 0 0.9596999470026764
+0.4267917833036139 0 0.8792805853620596
+0.4045728658559994 0 0.8387997880105676
+0.4063200612788055 0 0.87909984100796
+0.4234178886940752 0 0.798800975603377
+0.4010784750103903 0 0.7581996820158461
+0.4028256704331949 0 0.7984997350132069
+0.4200439940845374 0 0.7183213658447105
+0.3975840841647801 0 0.6775995760210944
+0.3993312795875852 0 0.7178996290184703
+0.4166700994749969 0 0.6378417560859997
+0.3940896933191658 0 0.5969994700262811
+0.3958368887419729 0 0.6372995230236878
+0.4132962048654677 0 0.5573621463274399
+0.3905953024735786 0 0.5163993640318549
+0.3923424978963722 0 0.5566994170290681
+0.4099223102559507 0 0.476882536569033
+0.3871009116279894 0 0.4357992580373757
+0.388848107050784 0 0.4760993110346153
+0.4065484156464318 0 0.3964029268105935
+0.3836065207823987 0 0.3551991520428827
+0.385353716205194 0 0.3954992050401292
+0.4031745210369115 0 0.3159233170521346
+0.3801121299368064 0 0.2745990460483609
+0.3818593253596025 0 0.3148990990456218
+0.3998006264273898 0 0.2354437072936433
+0.3783649345140097 0 0.2342989930510818
+0.4708681294906585 0 0.9598806913567726
+0.4488902045151717 0 0.9196408864774808
+0.4505169037019028 0 0.9598204432387403
+0.4677352273532564 0 0.8796420740702586
+0.4456368061416986 0 0.8392817729548374
+0.4472635053284352 0 0.879461329716159
+0.4646023252158519 0 0.7994034567837168
+0.4423834077682284 0 0.7589226594322565
+0.4440101069549635 0 0.7991022161935469
+0.4614694230784482 0 0.7191648394971901
+0.4391300093947572 0 0.6785635459096443
+0.4407567085814928 0 0.7187431026709503
+0.4583365209410422 0 0.6389262222106225
+0.4358766110212819 0 0.5982044323869778
+0.4375033102080195 0 0.6383839891483111
+0.4552036188036463 0 0.558687604924182
+0.4326232126478321 0 0.5178453188646439
+0.4342499118345571 0 0.5580248756258108
+0.4520707166662619 0 0.4784489876378663
+0.4293698142743805 0 0.4374862053422552
+0.4309965134611063 0 0.4776657621034496
+0.4489378145288758 0 0.3982103703515197
+0.4261164159009272 0 0.357127091819858
+0.4277431150876538 0 0.3973066485810566
+0.4458049123914885 0 0.3179717530651573
+0.4228630175274727 0 0.2767679782974339
+0.4244897167142 0 0.316947535058646
+0.4426720102540996 0 0.2377331357787635
+0.4212363183407462 0 0.2365884215362035
+0.5115705810681375 0 0.9600011875928367
+0.4897131523287348 0 0.9198818789496093
+0.4912193552794089 0 0.9599409394748046
+0.5086786714028796 0 0.880003562778458
+0.4867007464274011 0 0.8397637578991075
+0.488206949378068 0 0.8798228184243584
+0.5057867617376195 0 0.8000059379640576
+0.4836883405260702 0 0.7596456368486668
+0.4851945434767357 0 0.7997046973738873
+0.5028948520723604 0 0.7200083131496711
+0.4806759346247384 0 0.6795275157981944
+0.4821821375754043 0 0.7195865763234306
+0.500002942407099 0 0.6400106883352465
+0.4776635287234028 0 0.5994093947476746
+0.4791697316740705 0 0.6394684552729345
+0.497111032741847 0 0.5600130635209259
+0.4746511228220905 0 0.5192912736974333
+0.4761573257727467 0 0.559350334222554
+0.4942191230766054 0 0.4800154387067022
+0.4716387169207767 0 0.439173152647135
+0.4731449198714336 0 0.4792322131722841
+0.4913272134113624 0 0.4000178138924489
+0.4686263110194615 0 0.3590550315968336
+0.4701325139701191 0 0.3991140921219843
+0.4884353037461182 0 0.3200201890781835
+0.465613905118145 0 0.2789369105465073
+0.4671201080688033 0 0.3189959710716704
+0.4855433940808727 0 0.2400225642638873
+0.4641077021674891 0 0.2388778500213256
+0.5522730326456549 0 0.9601216838289008
+0.5305361001423037 0 0.9201228714217375
+0.5319218068569016 0 0.9600614357108688
+0.5496221154525363 0 0.8803650514866571
+0.5277646867131121 0 0.8402457428433776
+0.529150393427708 0 0.8801843071325575
+0.5469711982594154 0 0.8006084191443978
+0.5249932732839229 0 0.7603686142650777
+0.5263789799985175 0 0.8003071785542277
+0.5443202810662953 0 0.7208517868021518
+0.5222218598547328 0 0.6804914856867451
+0.5236075665693278 0 0.7204300499759114
+0.5416693638731733 0 0.6410951544598709
+0.5194504464255395 0 0.6006143571083723
+0.5208361531401361 0 0.6405529213975587
+0.53901844668006 0 0.5613385221176699
+0.5166790329963675 0 0.5207372285302235
+0.5180647397109536 0 0.5606757928192979
+0.5363675294869563 0 0.4815818897755375
+0.5139076195671941 0 0.4408600999520161
+0.5152933262817809 0 0.4807986642411198
+0.5337166122938511 0 0.4018252574333777
+0.5111362061380194 0 0.3609829713738105
+0.5125219128526068 0 0.4009215356629133
+0.5310656951007449 0 0.3220686250912091
+0.5083647927088437 0 0.281105842795582
+0.5097504994234315 0 0.3210444070846963
+0.5284147779076376 0 0.2423119927490105
+0.5069790859942646 0 0.2411672785064494
+0.5929754842231283 0 0.9602421800649651
+0.5713590479558706 0 0.9203638638938659
+0.5726242584344065 0 0.9601819319469329
+0.5905655595021568 0 0.8807265401948567
+0.5688286269988224 0 0.8407277277876479
+0.5700938374773465 0 0.8805457958407569
+0.5881556347811832 0 0.8012109003247389
+0.5662982060417762 0 0.7610915916814887
+0.5675634165202993 0 0.8009096597345684
+0.5857457100602104 0 0.7216952604546329
+0.5637677850847294 0 0.681455455575296
+0.5650329955632527 0 0.7212735236283925
+0.5833357853392357 0 0.6421796205844956
+0.5612373641276797 0 0.6018193194690704
+0.5625025746062046 0 0.6416373875221832
+0.580925860618269 0 0.5626639807144147
+0.5587069431706494 0 0.5221831833630139
+0.5599721536491645 0 0.5620012514160423
+0.578515935897311 0 0.483148340844374
+0.5561765222136179 0 0.4425470472568974
+0.5574417326921337 0 0.4823651153099557
+0.5761060111763517 0 0.4036327009743076
+0.553646101256585 0 0.3629109111507879
+0.5549113117351014 0 0.4027289792038427
+0.5736960864553914 0 0.3241170611042362
+0.5511156802995513 0 0.2832747750446574
+0.5523808907780681 0 0.3230928430977227
+0.57128616173443 0 0.2446014212341354
+0.5498504698210374 0 0.2434567069915732
+0.6336779358006904 0 0.9603626763010288
+0.6121819957694536 0 0.9206048563659939
+0.613326710011882 0 0.9603024281829968
+0.6315090035518334 0 0.8810880289030544
+0.6098925672845366 0 0.8412097127319172
+0.6110372815269951 0 0.8809072845489555
+0.6293400713029746 0 0.8018133815050765
+0.6076031387996212 0 0.7618145690978981
+0.6087478530420789 0 0.8015121409149076
+0.6271711390541164 0 0.7225387341071099
+0.6053137103147055 0 0.6824194254638447
+0.6064584245571634 0 0.7221169972808714
+0.6250022068052566 0 0.6432640867091148
+0.6030242818297868 0 0.6030242818297658
+0.6041689960722462 0 0.6427218536468052
+0.6228332745564038 0 0.5639894393111524
+0.600734853344886 0 0.5236291381958014
+0.6018795675873364 0 0.5633267100127836
+0.6206643423075588 0 0.4847147919132024
+0.598445424859984 0 0.4442339945617751
+0.599590139102435 0 0.4839315663787882
+0.618495410058713 0 0.4054401445152285
+0.5961559963750808 0 0.364838850927761
+0.5973007106175323 0 0.4045364227447681
+0.6163264778098659 0 0.3261654971172528
+0.5938665678901766 0 0.2854437072937279
+0.5950112821326287 0 0.3251412791107444
+0.614157545561018 0 0.2468908497192486
+0.5927218536477585 0 0.2457461354766939
+0.6743803873783876 0 0.9604831725370924
+0.6530049435831359 0 0.9208458488381213
+0.6540291615895459 0 0.9604229244190607
+0.6724524476016271 0 0.8814495176112518
+0.6509565075703247 0 0.8416916976761849
+0.6519807255767303 0 0.8812687732571531
+0.6705245078248654 0 0.8024158626854139
+0.6489080715575153 0 0.7625375465143054
+0.64993228956392 0 0.8021146220952451
+0.6685965680481039 0 0.7233822077595862
+0.646859635544705 0 0.6833833953523905
+0.6478838535511102 0 0.7229604709333479
+0.666668628271341 0 0.6443485528337332
+0.6448111995318926 0 0.6042292441904574
+0.6458354175382988 0 0.6438063197714241
+0.6647406884945847 0 0.5653148979078894
+0.6427627635190959 0 0.5250750930285843
+0.6437869815254943 0 0.5646521686095208
+0.6628127487178351 0 0.4862812429820297
+0.6407143275062981 0 0.4459209418666478
+0.6417385455126969 0 0.4854980174476161
+0.6608848089410846 0 0.4072475880561477
+0.6386658914934995 0 0.3667667907047285
+0.6396901094998988 0 0.4063438662856881
+0.6589568691643333 0 0.3282139331302677
+0.6366174554806998 0 0.287612639542792
+0.6376416734870995 0 0.3271897151237602
+0.6570289293875811 0 0.2491802782043599
+0.6355932374742905 0 0.2480355639618038
+0.7150828389561321 0 0.9606036687731561
+0.6938278913969047 0 0.9210868413102484
+0.6947316131672712 0 0.9605434206551242
+0.7133958916514673 0 0.8818110063194495
+0.6920204478561898 0 0.8421736826204528
+0.6929241696265471 0 0.8816302619653507
+0.7117089443468014 0 0.8030183438657519
+0.6902130043154771 0 0.7632605239307129
+0.6911167260858334 0 0.8027171032755829
+0.710021997042136 0 0.7242256814120632
+0.6884055607747629 0 0.6843473652409364
+0.6893092825451199 0 0.7238039445858246
+0.708335049737469 0 0.6454330189583525
+0.6865981172340472 0 0.6054342065511491
+0.687501839004405 0 0.6448907858960427
+0.7066481024328077 0 0.5666403565046273
+0.6847906736933453 0 0.5265210478613676
+0.6856943954636963 0 0.5659776272062583
+0.7049611551281525 0 0.4878476940508583
+0.6829832301526424 0 0.4476078891715205
+0.6838869519229938 0 0.487064468516444
+0.7032742078234966 0 0.4090550315970686
+0.6811757866119388 0 0.3686947304816959
+0.6820795083822906 0 0.4081513098266082
+0.7015872605188397 0 0.3302623691432844
+0.6793683430712343 0 0.2897815717918563
+0.6802720648415865 0 0.329238151136776
+0.6999003132141821 0 0.2514697066894733
+0.6784646213008747 0 0.2503249924469162
+0.7557852905338052 0 0.9607241650092195
+0.7346508392106608 0 0.9213278337823756
+0.7354340647449693 0 0.9606639168911878
+0.7543393357012348 0 0.8821724950276466
+0.7330843881420412 0 0.8426556675647205
+0.7338676136763509 0 0.8819917506735481
+0.7528933808686634 0 0.8036208250460884
+0.7315179370734236 0 0.7639835013471198
+0.7323011626077324 0 0.8033195844559201
+0.7514474260360925 0 0.7250691550645385
+0.7299514860048049 0 0.6853113351294819
+0.7307347115391143 0 0.7246474182383008
+0.7500014712035203 0 0.6465174850829698
+0.7283850349361845 0 0.6066391689118403
+0.7291682604704947 0 0.6459752520206611
+0.748555516370953 0 0.5679658151013629
+0.7268185838675763 0 0.5279670026941499
+0.7276018094018805 0 0.567303085802995
+0.7471095615383909 0 0.489414145119684
+0.7252521327989672 0 0.4492948364763923
+0.7260353583332717 0 0.4886309195852711
+0.745663606705828 0 0.4108624751379861
+0.7236856817303573 0 0.3706226702586623
+0.7244689072646622 0 0.4099587533675274
+0.7442176518732644 0 0.3323108051562972
+0.7221192306617468 0 0.2919505040409193
+0.722902456196052 0 0.3312865871497909
+0.7427716970407002 0 0.2537591351745822
+0.7213360051274413 0 0.2526144209320277
+0.7964877421115195 0 0.9608446612452828
+0.7754737870244004 0 0.9215688262545023
+0.7761365163226595 0 0.9607844131272512
+0.7952827797510393 0 0.8825339837358434
+0.7741483284278736 0 0.8431376525089875
+0.7748110577261371 0 0.882353239381745
+0.7940778173905583 0 0.8042233062264252
+0.7728228698313481 0 0.764706478763526
+0.7734855991296108 0 0.8039220656362569
+0.7928728550300777 0 0.7259126287170141
+0.7714974112348221 0 0.6862753050180266
+0.772160140533085 0 0.7254908918907763
+0.7916678926695958 0 0.6476019512075872
+0.7701719526382942 0 0.6078441312725305
+0.7708346819365581 0 0.6470597181452785
+0.7904629303091179 0 0.5692912736980984
+0.7688464940417766 0 0.5294129575269308
+0.7695092233400355 0 0.5686285443997305
+0.7892579679486443 0 0.4909805961885095
+0.7675210354452586 0 0.4509817837812626
+0.7681837647435177 0 0.4901973706540967
+0.7880530055881703 0 0.4126699186789035
+0.7661955768487397 0 0.372550610035627
+0.7668583061469991 0 0.4117661969084448
+0.7868480432276959 0 0.33435924116931
+0.7648701182522204 0 0.2941194362899803
+0.7655328475504801 0 0.3333350231628036
+0.7856430808672208 0 0.2560485636596911
+0.7642073889539864 0 0.2549038494171381
+0.8371901936891833 0 0.9609651574813465
+0.8162967348381371 0 0.9218098187266293
+0.816838967900346 0 0.9609049093633146
+0.8362262238008042 0 0.8828954724440409
+0.8152122687137064 0 0.843619637453255
+0.8157545017759218 0 0.8827147280899422
+0.8352622539124244 0 0.8048257874067626
+0.8141278025892764 0 0.7654294561799329
+0.8146700356514913 0 0.804524546816594
+0.8342982840240448 0 0.7267561023694904
+0.8130433364648461 0 0.6872392749065717
+0.8135855695270613 0 0.7263343655432524
+0.8333343141356646 0 0.6486864173322058
+0.8119588703404144 0 0.6090490936332214
+0.8125011034026303 0 0.6481441842698965
+0.8323703442472874 0 0.5706167322948356
+0.810874404215991 0 0.5308589123597127
+0.8114166372782026 0 0.5699540029964669
+0.8314063743589137 0 0.4925470472573371
+0.8097899380915672 0 0.4526687310861339
+0.8103321711537792 0 0.4917638217229233
+0.8304424044705397 0 0.4144773622198231
+0.8087054719671429 0 0.3744785498125928
+0.8092477050293549 0 0.4135736404493633
+0.8294784345821651 0 0.3364076771823253
+0.807621005842718 0 0.2962883685390426
+0.8081632389049305 0 0.3353834591758177
+0.8285144646937901 0 0.2583379921448029
+0.8070787727804934 0 0.2571932779022463
+0.8778926452669094 0 0.9610856537174102
+0.857119682651881 0 0.9220508111987566
+0.8575414194780467 0 0.9610254055993783
+0.8771696678506252 0 0.8832569611522384
+0.8562762089995484 0 0.8441016223975226
+0.8566979458257147 0 0.8830762167981396
+0.8764466904343404 0 0.8054282685871001
+0.8554327353472164 0 0.7661524335963399
+0.8558544721733824 0 0.8051270279969314
+0.8757237130180557 0 0.7275995760219669
+0.8545892616948843 0 0.6882032447951174
+0.8550109985210503 0 0.7271778391957286
+0.8750007356017706 0 0.6497708834568243
+0.853745788042551 0 0.6102540559939127
+0.8541675248687176 0 0.649228650394515
+0.8742777581854879 0 0.5719421908915728
+0.8529023143902243 0 0.5323048671924957
+0.8533240512163877 0 0.5712794615932042
+0.8735547807692078 0 0.4941134983261647
+0.8520588407378973 0 0.4543556783910062
+0.8524805775640609 0 0.4933302727917509
+0.8728318033529272 0 0.4162848057607428
+0.8512153670855698 0 0.3764064895895598
+0.8516371039117334 0 0.415381083990283
+0.8721088259366464 0 0.3384561131953409
+0.8503718934332418 0 0.2984573007881063
+0.8507936302594057 0 0.3374318951888331
+0.8713858485203652 0 0.2606274206299148
+0.8499501566070766 0 0.2594827063873588
+0.9185950968445701 0 0.9612061499534734
+0.8979426304656217 0 0.9222918036708836
+0.8982438710557517 0 0.9611459018354418
+0.9181131119003807 0 0.8836184498604351
+0.8973401492853842 0 0.8445836073417901
+0.897641389875503 0 0.8834377055063367
+0.9176311269561908 0 0.8060307497674366
+0.896737668105147 0 0.7668754110127467
+0.8970389086952656 0 0.8057295091772684
+0.917149142012001 0 0.7284430496744421
+0.8961351869249099 0 0.6891672146836624
+0.8964364275150285 0 0.7280213128482045
+0.916667157067811 0 0.6508553495814415
+0.8955327057446718 0 0.6114590183546036
+0.8958339463347909 0 0.6503131165191329
+0.9161851721236224 0 0.5732676494883081
+0.8949302245644386 0 0.5337508220252773
+0.8952314651545552 0 0.5726049201899404
+0.9157031871794354 0 0.4956799493949899
+0.8943277433842047 0 0.4560426256958773
+0.8946289839743216 0 0.4948967238605774
+0.9152212022352484 0 0.4180922493016599
+0.8937252622039709 0 0.3783344293665255
+0.8940265027940878 0 0.4171885275312014
+0.9147392172910614 0 0.3405045492083533
+0.893122781023737 0 0.3006262330371686
+0.8934240216138539 0 0.3394803312018471
+0.9142572323468741 0 0.2629168491150233
+0.8928215404336115 0 0.2617721348724686
+0.9592975484222894 0 0.9613266461895371
+0.9387655782793585 0 0.9225327961430105
+0.9389463226334269 0 0.9612663980715053
+0.9590565559501931 0 0.8839799385686326
+0.9384040895712153 0 0.8450655922860572
+0.9385848339252869 0 0.8837991942145338
+0.9588155634780966 0 0.8066332309477737
+0.938042600863072 0 0.7675983884291531
+0.9382233452171436 0 0.8063319903576052
+0.9585745710060001 0 0.7292865233269183
+0.9376811121549291 0 0.6901311845722073
+0.9378618565090007 0 0.7288647865006802
+0.9583335785339034 0 0.6519398157060596
+0.9373196234467853 0 0.6126639807152938
+0.9375003678008572 0 0.6513975826437506
+0.9580925860618077 0 0.5745931080850445
+0.9369581347386446 0 0.5351967768580588
+0.9371388790927149 0 0.5739303787866763
+0.9578515935897127 0 0.4972464004638169
+0.9365966460305035 0 0.4577295730007481
+0.9367773903845741 0 0.4964631749294035
+0.9576106011176176 0 0.4198996928425788
+0.9362351573223625 0 0.3802623691434907
+0.936415901676433 0 0.4189959710721194
+0.9573696086455223 0 0.3425529852213676
+0.9358736686142213 0 0.3027951652862302
+0.9360544129682918 0 0.3415287672148604
+0.9571286161734269 0 0.265206277600134
+0.9356929242601568 0 0.264061563357579
+0.9795885260931207 0 0.9227737886151377
+0.9796487742111419 0 0.9613868943075712
+0.9794680298570724 0 0.8455475772303247
+0.9795282779750966 0 0.8841606829227062
+0.9793475336210241 0 0.7683213658455601
+0.9794077817390483 0 0.806934471537933
+0.979227037384976 0 0.6910951544607529
+0.9792872855030001 0 0.7297082601531573
+0.9791065411489275 0 0.6138689430759849
+0.9791667892669518 0 0.6524820487683812
+0.9789860449128802 0 0.5366427316908412
+0.9790462930309038 0 0.5752558373834344
+0.9788655486768326 0 0.4594165203056201
+0.9789257967948564 0 0.4980296259982369
+0.978745052440785 0 0.3821903089204572
+0.9788053005588088 0 0.4208034146130384
+0.9786245562047373 0 0.3049640975352934
+0.9786848043227612 0 0.3435772032279192
+0.9785643080867119 0 0.2663509918427019
+2 2 0 361
+1084
+1085
+1086
+1087
+1088
+1089
+1090
+1091
+1092
+1093
+1094
+1095
+1096
+1097
+1098
+1099
+1100
+1101
+1102
+1103
+1104
+1105
+1106
+1107
+1108
+1109
+1110
+1111
+1112
+1113
+1114
+1115
+1116
+1117
+1118
+1119
+1120
+1121
+1122
+1123
+1124
+1125
+1126
+1127
+1128
+1129
+1130
+1131
+1132
+1133
+1134
+1135
+1136
+1137
+1138
+1139
+1140
+1141
+1142
+1143
+1144
+1145
+1146
+1147
+1148
+1149
+1150
+1151
+1152
+1153
+1154
+1155
+1156
+1157
+1158
+1159
+1160
+1161
+1162
+1163
+1164
+1165
+1166
+1167
+1168
+1169
+1170
+1171
+1172
+1173
+1174
+1175
+1176
+1177
+1178
+1179
+1180
+1181
+1182
+1183
+1184
+1185
+1186
+1187
+1188
+1189
+1190
+1191
+1192
+1193
+1194
+1195
+1196
+1197
+1198
+1199
+1200
+1201
+1202
+1203
+1204
+1205
+1206
+1207
+1208
+1209
+1210
+1211
+1212
+1213
+1214
+1215
+1216
+1217
+1218
+1219
+1220
+1221
+1222
+1223
+1224
+1225
+1226
+1227
+1228
+1229
+1230
+1231
+1232
+1233
+1234
+1235
+1236
+1237
+1238
+1239
+1240
+1241
+1242
+1243
+1244
+1245
+1246
+1247
+1248
+1249
+1250
+1251
+1252
+1253
+1254
+1255
+1256
+1257
+1258
+1259
+1260
+1261
+1262
+1263
+1264
+1265
+1266
+1267
+1268
+1269
+1270
+1271
+1272
+1273
+1274
+1275
+1276
+1277
+1278
+1279
+1280
+1281
+1282
+1283
+1284
+1285
+1286
+1287
+1288
+1289
+1290
+1291
+1292
+1293
+1294
+1295
+1296
+1297
+1298
+1299
+1300
+1301
+1302
+1303
+1304
+1305
+1306
+1307
+1308
+1309
+1310
+1311
+1312
+1313
+1314
+1315
+1316
+1317
+1318
+1319
+1320
+1321
+1322
+1323
+1324
+1325
+1326
+1327
+1328
+1329
+1330
+1331
+1332
+1333
+1334
+1335
+1336
+1337
+1338
+1339
+1340
+1341
+1342
+1343
+1344
+1345
+1346
+1347
+1348
+1349
+1350
+1351
+1352
+1353
+1354
+1355
+1356
+1357
+1358
+1359
+1360
+1361
+1362
+1363
+1364
+1365
+1366
+1367
+1368
+1369
+1370
+1371
+1372
+1373
+1374
+1375
+1376
+1377
+1378
+1379
+1380
+1381
+1382
+1383
+1384
+1385
+1386
+1387
+1388
+1389
+1390
+1391
+1392
+1393
+1394
+1395
+1396
+1397
+1398
+1399
+1400
+1401
+1402
+1403
+1404
+1405
+1406
+1407
+1408
+1409
+1410
+1411
+1412
+1413
+1414
+1415
+1416
+1417
+1418
+1419
+1420
+1421
+1422
+1423
+1424
+1425
+1426
+1427
+1428
+1429
+1430
+1431
+1432
+1433
+1434
+1435
+1436
+1437
+1438
+1439
+1440
+1441
+1442
+1443
+1444
+0.1689598222008974 0 0.2689598222007157
+0.1501865086230512 0 0.2730807934739037
+0.1314131950452088 0 0.2772017647470908
+0.1126398814673749 0 0.2813227360202757
+0.09386656788954072 0 0.2854437072934609
+0.07509325431163416 0 0.2895646785666671
+0.05631994073373469 0 0.2936856498398715
+0.0375466271558248 0 0.2978066211130788
+0.01877331357791998 0 0.3019275923862844
+0.1730807934740696 0 0.3501865086226549
+0.153849594199193 0 0.3538495941988198
+0.1346183949243199 0 0.3575126797749841
+0.1153871956494544 0 0.3611757653511463
+0.09615599637458944 0 0.3648388509273088
+0.07692479709967324 0 0.3685019365034901
+0.05769359782476373 0 0.3721650220796698
+0.03846239854984544 0 0.3758281076558518
+0.01923119927493033 0 0.3794911932320327
+0.1772017647472397 0 0.4314131950445574
+0.1575126797753331 0 0.4346183949237009
+0.1378235948034296 0 0.4378235948028437
+0.1181345098315326 0 0.4410287946819847
+0.09844542485963712 0 0.444233994561126
+0.07875633988771148 0 0.4474391944402837
+0.05906725491579214 0 0.4506443943194401
+0.03937816994386563 0 0.4538495941985984
+0.01968908497194049 0 0.4570547940777557
+0.181322736020408 0 0.5126398814664286
+0.1611757653514715 0 0.5153871956485554
+0.1410287946825377 0 0.5181345098306815
+0.1208818240136095 0 0.5208818240128065
+0.1007348533446837 0 0.5236291381949315
+0.08058788267574887 0 0.5263764523770705
+0.06044091200681993 0 0.5291237665592083
+0.04029394133788543 0 0.5318710807413481
+0.02014697066895043 0 0.5346183949234866
+0.185443707293574 0 0.5938665678882568
+0.1648388509276079 0 0.5961559963733701
+0.1442339945616441 0 0.598445424858483
+0.1236291381956849 0 0.6007348533435946
+0.1030242818297292 0 0.6030242818287063
+0.08241942546378524 0 0.6053137103138297
+0.06181456909784696 0 0.6076031387989524
+0.0412097127319047 0 0.6098925672840764
+0.02060485636596012 0 0.6121819957691996
+0.1895646785667719 0 0.6750932543106976
+0.1685019365037727 0 0.6769247970987771
+0.1474391944407753 0 0.6787563398868561
+0.1263764523777816 0 0.6805878826749342
+0.1053137103147922 0 0.6824194254630122
+0.0842509682518358 0 0.6842509682511001
+0.06318822618888462 0 0.6860825110391868
+0.04212548412593108 0 0.6879140538272748
+0.02106274206297335 0 0.6897455966153625
+0.1936856498399651 0 0.7563199407330546
+0.1721650220799332 0 0.7576935978241112
+0.1506443943199027 0 0.7590672549151672
+0.1291237665598751 0 0.7604409120062222
+0.1076031387998527 0 0.7618145690972781
+0.08608251103988428 0 0.7631882261883401
+0.06456188327992071 0 0.7645618832794019
+0.04304125551995638 0 0.7659355403704647
+0.02152062775998606 0 0.767309197461527
+0.1978066211131569 0 0.8375466271553871
+0.1758281076560926 0 0.8384623985494211
+0.1538495941990292 0 0.8393781699434548
+0.1318710807419677 0 0.8402939413374882
+0.1098925672849124 0 0.8412097127315217
+0.08791405382793212 0 0.8421254841255599
+0.06593554037095635 0 0.8430412555195973
+0.04395702691398141 0 0.8439570269136359
+0.02197851345699861 0 0.8448727983076738
+0.2019275923863523 0 0.9187733135777804
+0.179491193232255 0 0.9192311992747852
+0.1570547940781584 0 0.9196890849717901
+0.1346183949240626 0 0.9201469706687948
+0.1121819957699741 0 0.9206048563657994
+0.08974559661598151 0 0.9210627420628065
+0.06730919746199315 0 0.9215206277598132
+0.04487279830800719 0 0.9219785134568202
+0.02243639915401156 0 0.9224363991538274
+0.1783464789898177 0 0.2668993365641225
+0.1668993365643106 0 0.2283464789897256
+0.1761715219289732 0 0.2261715219288724
+0.1595731654119743 0 0.2710203078373097
+0.1483549658349795 0 0.2326963931114216
+0.1576271511996403 0 0.2305214360505748
+0.14079985183413 0 0.2751412791104972
+0.1298105951056526 0 0.2370463072331165
+0.1390827804703155 0 0.2348713501722692
+0.1220265382562919 0 0.2792622503836832
+0.1112662243763347 0 0.2413962213548093
+0.1205384097409888 0 0.2392212642939641
+0.1032532246784578 0 0.2833832216568683
+0.09272185364701586 0 0.2457461354765023
+0.1019940390116766 0 0.2435711784156554
+0.08447991110058745 0 0.287504192930064
+0.07417748291761425 0 0.2500960495982175
+0.08344966828231054 0 0.2479210925373611
+0.06570659752268443 0 0.2916251642032693
+0.05563311218821988 0 0.2544459637199308
+0.0649052975529195 0 0.2522710066590735
+0.04693328394477975 0 0.2957461354764751
+0.0370887414588143 0 0.2587958778416471
+0.04636092682351543 0 0.2566209207807894
+0.02815997036687239 0 0.2998671067496816
+0.0185443707294147 0 0.2631457919633617
+0.02781655609411705 0 0.2609708349025038
+0.009386656788959988 0 0.303988078022889
+0.009272185364711603 0 0.265320749024207
+0.1826963931115053 0 0.348354965834573
+0.1710203078374835 0 0.3095731654116853
+0.1805214360506622 0 0.3076271511993611
+0.1634651938366313 0 0.3520180514107374
+0.1520180514111221 0 0.3134651938363618
+0.1615191796243028 0 0.3115191796240236
+0.1442339945617565 0 0.355681136986902
+0.1330157949847644 0 0.3173572222610375
+0.1425169231979432 0 0.3154112080486996
+0.1250027952868872 0 0.3593442225630652
+0.1140135385584147 0 0.321249250685711
+0.1235146667715895 0 0.3193032364733742
+0.1057715960120219 0 0.3630073081392275
+0.09501128213206508 0 0.3251412791103848
+0.1045124103452399 0 0.3231952648980478
+0.08654039673713135 0 0.3666703937153994
+0.07600902570565371 0 0.3290333075350786
+0.0855101539188594 0 0.3270872933227318
+0.06730919746221849 0 0.37033347929158
+0.05700676927924921 0 0.3329253359597707
+0.06650789749245145 0 0.3309793217474247
+0.04807799818730459 0 0.3739965648677608
+0.03800451285283513 0 0.3368173643844653
+0.04750564106604217 0 0.334871350172118
+0.02884679891238789 0 0.3776596504439422
+0.01900225642642515 0 0.3407093928091586
+0.02850338463963014 0 0.3387633785968119
+0.009615599637465166 0 0.3813227360201246
+0.009501128213212577 0 0.3426554070215232
+0.1870463072331908 0 0.4298105951049863
+0.1751412791106546 0 0.3907998518336062
+0.1848713501723483 0 0.3890827804697838
+0.1673572222612864 0 0.4330157949841292
+0.155681136987263 0 0.3942339945612604
+0.1654112080489588 0 0.3925169231974333
+0.1476681372893813 0 0.4362209948632723
+0.1362209948638747 0 0.3976681372889139
+0.1459510659255689 0 0.3959510659250871
+0.1279790523174811 0 0.4394261947424142
+0.1167608527404935 0 0.4011022800165655
+0.1264909238021841 0 0.3993852086527397
+0.1082899673455848 0 0.4426313946215553
+0.09730071061711328 0 0.4045364227442174
+0.1070307816788034 0 0.4028193513803914
+0.08860088237367431 0 0.4458365945007049
+0.07784056849369236 0 0.4079705654718869
+0.08757063955540281 0 0.4062534941080522
+0.06891179740175181 0 0.4490417943798619
+0.05838042637027793 0 0.411404708199555
+0.06811049743198515 0 0.409687636835721
+0.04922271242982888 0 0.4522469942590193
+0.03892028424685554 0 0.4148388509272251
+0.04865035530856673 0 0.41312177956339
+0.02953362745790306 0 0.4554521941381771
+0.01946014212343541 0 0.4182729936548942
+0.02919021318514547 0 0.4165559222910596
+0.009844542485970246 0 0.4586573940173356
+0.009730071061717707 0 0.4199900650187325
+0.1913962213548743 0 0.5112662243753656
+0.1792622503838238 0 0.472026538255493
+0.189221264294032 0 0.4705384097401658
+0.1712492506859398 0 0.514013538557492
+0.1593442225634023 0 0.4750027952861282
+0.1693032364736131 0 0.4735146667708106
+0.1511022800170046 0 0.5167608527396185
+0.1394261947429836 0 0.4779790523167626
+0.149385208653193 0 0.4764909238014453
+0.1309553093480736 0 0.5195081669217441
+0.119508166922571 0 0.4809553093473956
+0.1294671808327773 0 0.4794671808320791
+0.1108083386791466 0 0.522255481103869
+0.09959013910216043 0 0.4839315663780288
+0.1095491530123657 0 0.4824434378627122
+0.09066136801021631 0 0.525002795286001
+0.07967211128173018 0 0.4869078234086771
+0.08963112519194531 0 0.485419694893353
+0.0705143973412844 0 0.5277501094681394
+0.05975408346130603 0 0.4898840804393242
+0.0697130973715181 0 0.4883959519240006
+0.05036742667235268 0 0.5304974236502782
+0.03983605564087553 0 0.4928603374699733
+0.04979506955109078 0 0.4913722089546487
+0.03022045600341793 0 0.5332447378324174
+0.01991802782044546 0 0.4958365945006211
+0.02987704173066049 0 0.4943484659852972
+0.01007348533447521 0 0.5359920520145571
+0.00995901391022273 0 0.4973247230159463
+0.1957461354765554 0 0.5927218536457005
+0.183383221656991 0 0.5532532246773427
+0.1935711784157146 0 0.5519940390105287
+0.175141279110591 0 0.5950112821308134
+0.1630073081395397 0 0.5557715960109628
+0.1731952648982654 0 0.5545124103441528
+0.154536422744626 0 0.5973007106159265
+0.1426313946220909 0 0.5582899673445822
+0.1528193513808153 0 0.5570307816777724
+0.1339315663786645 0 0.5995901391010388
+0.1222554811046472 0 0.5608083386782006
+0.132443437863369 0 0.5595491530113914
+0.113326710012707 0 0.6018795675861504
+0.1018795675872065 0 0.5633267100118189
+0.1120675243459268 0 0.5620675243450097
+0.0927218536467572 0 0.6041689960712679
+0.08150365406976706 0 0.5658450813454501
+0.09169161082848676 0 0.5645858956786345
+0.07211699728081609 0 0.6064584245563911
+0.06112774055233344 0 0.5683634526790804
+0.07131569731105025 0 0.5671042670122652
+0.05151214091487583 0 0.6087478530415145
+0.04075182703489506 0 0.5708818240127123
+0.05093978379361425 0 0.5696226383458963
+0.03090728454893241 0 0.6110372815266381
+0.02037591351745528 0 0.5734001953463431
+0.03056387027617517 0 0.5721410096795279
+0.01030242818298006 0 0.6133267100117621
+0.01018795675872764 0 0.5746593810131774
+0.2000960495982702 0 0.6741774829166581
+0.187504192930173 0 0.6344799110994772
+0.1979210925374116 0 0.6334496682811582
+0.1790333075352723 0 0.6760090257047373
+0.1666703937156903 0 0.6365403967360737
+0.1770872933229316 0 0.6355101539177754
+0.157970565472274 0 0.6778405684928166
+0.1458365945012097 0 0.6386008823726695
+0.15625349410845 0 0.6375706395543714
+0.1369078234092784 0 0.6796721112808952
+0.1250027952867332 0 0.6406613680092643
+0.1354196948939715 0 0.639631125190967
+0.1158450813462869 0 0.6815036540689732
+0.1041689960722607 0 0.6427218536458592
+0.114585895679497 0 0.6416916108275618
+0.094782339283314 0 0.6833351968570561
+0.08333519685781052 0 0.644782339282465
+0.0937520964650356 0 0.6437520964641621
+0.0737195972203602 0 0.6851667396451435
+0.06250139764336579 0 0.6468428249190696
+0.07291829725058815 0 0.6458125821007673
+0.05265685515740785 0 0.6869982824332308
+0.04166759842891789 0 0.6489033105556756
+0.05208449803614183 0 0.6478730677373726
+0.03159411309445222 0 0.6888298252213186
+0.02083379921446674 0 0.6509637961922811
+0.03125069882169231 0 0.6499335533739784
+0.01053137103148668 0 0.6906613680094068
+0.01041689960723337 0 0.6519940390105867
+0.20444596371998 0 0.7556331121875268
+0.1916251642033685 0 0.7157065975218762
+0.2022710066591237 0 0.7149052975520678
+0.1829253359599491 0 0.7570067692785829
+0.1703334792918529 0 0.7173091974614441
+0.1809793217476107 0 0.7165078974916601
+0.161404708199918 0 0.7583804263696392
+0.149041794380339 0 0.7189117974010117
+0.159687636836096 0 0.718110497431228
+0.1398840804398889 0 0.7597540834606947
+0.1277501094688283 0 0.7205143973405782
+0.1383959519245837 0 0.719713097370795
+0.1183634526798639 0 0.7611277405517501
+0.1064584245573225 0 0.7221169972801451
+0.1171042670130754 0 0.7213156973103616
+0.09684282491986848 0 0.7625013976428091
+0.08516673964586004 0 0.7237195972197201
+0.09581258210159124 0 0.7229182972499326
+0.07532219715990249 0 0.7638750547338711
+0.06387505473440266 0 0.7253221971592944
+0.07452089719013133 0 0.7245208971895074
+0.05380156939993855 0 0.7652487118249334
+0.04258336982294373 0 0.7269247970988697
+0.0532292122786732 0 0.726123497129082
+0.03228094163997122 0 0.7666223689159959
+0.02129168491147971 0 0.7285273970384447
+0.03193752736721172 0 0.7277260970686572
+0.01076031387999303 0 0.7679960260070586
+0.01064584245573985 0 0.7293286970082459
+0.2087958778416884 0 0.8370887414583701
+0.195746135476561 0 0.7969332839442209
+0.2066209207808342 0 0.7963609268229485
+0.1868173643846248 0 0.8380045128524041
+0.1739965648680129 0 0.7980779981867661
+0.1848713501722869 0 0.7975056410654934
+0.1648388509275609 0 0.8389202842464379
+0.152246994259466 0 0.799222712429311
+0.1631217795637395 0 0.7986503553080386
+0.1428603374704985 0 0.8398360556404716
+0.1304974236509214 0 0.8003674266718552
+0.1413722089551937 0 0.7997950695505831
+0.1208818240134401 0 0.8407518270345049
+0.1087478530423825 0 0.8015121409143999
+0.119622638346652 0 0.8009397837931276
+0.09890331055642226 0 0.8416675984285408
+0.0869982824339082 0 0.80265685515695
+0.09787306773814537 0 0.8020844980356749
+0.07692479709944423 0 0.8425833698225786
+0.06524871182543854 0 0.8038015693994995
+0.07612349712967337 0 0.8032292122782249
+0.05494628364246888 0 0.8434991412166166
+0.04349914121696889 0 0.8049462836420503
+0.05437392652120372 0 0.804373926520775
+0.03296777018549001 0 0.8444149126106548
+0.02174957060849234 0 0.8060909978846005
+0.03262435591273062 0 0.8055186407633252
+0.01098925672849931 0 0.8453306840046932
+0.01087478530424617 0 0.8066633550058634
+0.2131457919634005 0 0.918544370729278
+0.1998671067497546 0 0.8781599703665837
+0.2109708349025425 0 0.8778165560937892
+0.1907093928093037 0 0.9190022564262827
+0.1776596504441738 0 0.8788467989121032
+0.1887633785969642 0 0.8785033846393435
+0.1682729936552068 0 0.9194601421232877
+0.1554521941385938 0 0.8795336274576224
+0.1665559222913839 0 0.8791902131848628
+0.1458365945011105 0 0.9199180278202925
+0.1332447378330152 0 0.8802204560031415
+0.1443484659858045 0 0.8798770417303821
+0.1234001953470183 0 0.9203759135172971
+0.1110372815274432 0 0.8809072845486605
+0.1221410096802292 0 0.8805638702759009
+0.1009637961929778 0 0.920833799214303
+0.08882982522195682 0 0.8815941130941831
+0.09993355337470003 0 0.8812506988214219
+0.07852739703898734 0 0.9212916849113099
+0.06662236891647474 0 0.8822809416397053
+0.07772609706921579 0 0.8819375273669443
+0.05609099788500017 0 0.9217495706083167
+0.0444149126109943 0 0.8829677701852281
+0.05551864076373453 0 0.8826243559124667
+0.03365459873100937 0 0.9222074563053237
+0.02220745630550509 0 0.8836545987307506
+0.03331118445824969 0 0.8833111844579893
+0.01121819957700578 0 0.922665342002331
+0.01110372815275254 0 0.8839980130035224
+0.2039880780229449 0 0.9593866567888902
+0.2153207490242498 0 0.9592721853646586
+0.1813227360203318 0 0.9596155996373926
+0.1926554070216384 0 0.9595011282131414
+0.1586573940177191 0 0.959844542485895
+0.1699900650190278 0 0.9597300710616439
+0.1359920520151068 0 0.9600734853343974
+0.1473247230164155 0 0.9599590139101463
+0.1133267100125021 0 0.9603024281828997
+0.1246593810138033 0 0.9601879567586484
+0.09066136801000399 0 0.9605313710314032
+0.1019940390112537 0 0.9604168996071514
+0.06799602600750987 0 0.9607603138799066
+0.07932869700875812 0 0.960645842455655
+0.04533068400501897 0 0.9609892567284102
+0.05666335500626629 0 0.9608747853041584
+0.02266534200251748 0 0.9612181995769137
+0.03399801300376931 0 0.9611037281526618
+0.01133267100125785 0 0.9613326710011603
+2 3 0 361
+1445
+1446
+1447
+1448
+1449
+1450
+1451
+1452
+1453
+1454
+1455
+1456
+1457
+1458
+1459
+1460
+1461
+1462
+1463
+1464
+1465
+1466
+1467
+1468
+1469
+1470
+1471
+1472
+1473
+1474
+1475
+1476
+1477
+1478
+1479
+1480
+1481
+1482
+1483
+1484
+1485
+1486
+1487
+1488
+1489
+1490
+1491
+1492
+1493
+1494
+1495
+1496
+1497
+1498
+1499
+1500
+1501
+1502
+1503
+1504
+1505
+1506
+1507
+1508
+1509
+1510
+1511
+1512
+1513
+1514
+1515
+1516
+1517
+1518
+1519
+1520
+1521
+1522
+1523
+1524
+1525
+1526
+1527
+1528
+1529
+1530
+1531
+1532
+1533
+1534
+1535
+1536
+1537
+1538
+1539
+1540
+1541
+1542
+1543
+1544
+1545
+1546
+1547
+1548
+1549
+1550
+1551
+1552
+1553
+1554
+1555
+1556
+1557
+1558
+1559
+1560
+1561
+1562
+1563
+1564
+1565
+1566
+1567
+1568
+1569
+1570
+1571
+1572
+1573
+1574
+1575
+1576
+1577
+1578
+1579
+1580
+1581
+1582
+1583
+1584
+1585
+1586
+1587
+1588
+1589
+1590
+1591
+1592
+1593
+1594
+1595
+1596
+1597
+1598
+1599
+1600
+1601
+1602
+1603
+1604
+1605
+1606
+1607
+1608
+1609
+1610
+1611
+1612
+1613
+1614
+1615
+1616
+1617
+1618
+1619
+1620
+1621
+1622
+1623
+1624
+1625
+1626
+1627
+1628
+1629
+1630
+1631
+1632
+1633
+1634
+1635
+1636
+1637
+1638
+1639
+1640
+1641
+1642
+1643
+1644
+1645
+1646
+1647
+1648
+1649
+1650
+1651
+1652
+1653
+1654
+1655
+1656
+1657
+1658
+1659
+1660
+1661
+1662
+1663
+1664
+1665
+1666
+1667
+1668
+1669
+1670
+1671
+1672
+1673
+1674
+1675
+1676
+1677
+1678
+1679
+1680
+1681
+1682
+1683
+1684
+1685
+1686
+1687
+1688
+1689
+1690
+1691
+1692
+1693
+1694
+1695
+1696
+1697
+1698
+1699
+1700
+1701
+1702
+1703
+1704
+1705
+1706
+1707
+1708
+1709
+1710
+1711
+1712
+1713
+1714
+1715
+1716
+1717
+1718
+1719
+1720
+1721
+1722
+1723
+1724
+1725
+1726
+1727
+1728
+1729
+1730
+1731
+1732
+1733
+1734
+1735
+1736
+1737
+1738
+1739
+1740
+1741
+1742
+1743
+1744
+1745
+1746
+1747
+1748
+1749
+1750
+1751
+1752
+1753
+1754
+1755
+1756
+1757
+1758
+1759
+1760
+1761
+1762
+1763
+1764
+1765
+1766
+1767
+1768
+1769
+1770
+1771
+1772
+1773
+1774
+1775
+1776
+1777
+1778
+1779
+1780
+1781
+1782
+1783
+1784
+1785
+1786
+1787
+1788
+1789
+1790
+1791
+1792
+1793
+1794
+1795
+1796
+1797
+1798
+1799
+1800
+1801
+1802
+1803
+1804
+1805
+0.009758770706239702 0 0.1233009942559456
+0.01946678062675132 0 0.1219511541627764
+0.02907358190173262 0 0.1199623079203577
+0.03852935067831824 0 0.1173443661127837
+0.04778519430687052 0 0.1141111178924382
+0.0567934527187469 0 0.1102801459790135
+0.06550799223331856 0 0.1058727182863003
+0.07388449011245654 0 0.1009136567382804
+0.08188070770023817 0 0.09543118430190772
+0.01056731485155128 0 0.1328507393346952
+0.02108866545593592 0 0.1311957797730625
+0.03151837092260931 0 0.1289621956656721
+0.04181131540367689 0 0.1261589611158668
+0.05192322626229542 0 0.1227985622977523
+0.06181094697233826 0 0.1188969204872169
+0.07143270316273918 0 0.1144732939292237
+0.0807483602835472 0 0.1095501590498687
+0.08971967093585133 0 0.1041530719434914
+0.0114082007623938 0 0.1427824742130306
+0.02277542567772312 0 0.1408101904043305
+0.03406095150346958 0 0.1383220789174825
+0.04522455871690652 0 0.1353261399158479
+0.05622677949449524 0 0.131833504476124
+0.06702914099432415 0 0.1278583659726435
+0.07759440252727029 0 0.1234178925947894
+0.08788678525908655 0 0.1185321214508574
+0.09787219269815246 0 0.113223835087669
+0.01228272210792762 0 0.153111478465696
+0.02452965630488659 0 0.1508091774407299
+0.03670523530229551 0 0.1480563574797991
+0.04877433175559216 0 0.1448600058486866
+0.06070247484706457 0 0.1412298443227872
+0.07245606276637484 0 0.1371782692588201
+0.08400256985361189 0 0.1327202751883686
+0.09531074721885127 0 0.1278733623292217
+0.1063508153140462 0 0.1226574287387877
+0.01319222430708132 0 0.16385364288584
+0.02635405615673243 0 0.1612081239560627
+0.03945529045246509 0 0.1581800071821754
+0.05246609571500684 0 0.1547752264164799
+0.06535719801270429 0 0.151002037761017
+0.07810006140805521 0 0.1468709686741877
+0.09066706387152737 0 0.1423947530834647
+0.1030316676552911 0 0.1375882528405103
+0.1151685828326151 0 0.1324683661337441
+0.01413810659582479 0 0.1750254939017844
+0.02825143200590891 0 0.1720230283504123
+0.04231534781355058 0 0.1687086028905799
+0.05630553023938809 0 0.1650870558245665
+0.07019811011327821 0 0.161165118954122
+0.08396982000547672 0 0.1569513760833935
+0.09759813766205429 0 0.1524562101115745
+0.1110614249229679 0 0.1476917389895508
+0.1243390610676625 0 0.1426717410419882
+0.01512182417505932 0 0.1866442189456474
+0.03022470288692879 0 0.1832705289082419
+0.0452898074658782 0 0.1796583424153718
+0.0602985421404468 0 0.1758113583972945
+0.07523265869245586 0 0.1717347233834592
+0.0900743689402235 0 0.1674349997775908
+0.1048064543964417 0 0.1629201254094755
+0.1194123724723602 0 0.1581993645731942
+0.1338763584218416 0 0.1532832509351129
+0.01614489045715001 0 0.198727692987288
+0.03227690460256107 0 0.1949679294845586
+0.04838324550335152 0 0.1910460715174564
+0.06445127451627573 0 0.1869646330693354
+0.08046858921319618 0 0.1827271119864533
+0.096423099830414 0 0.1783379684160963
+0.1123031037979055 0 0.1738025973158676
+0.1280973579210632 0 0.1691272951767728
+0.1437951476671429 0 0.1643192212205458
+0.01720887939119283 0 0.2112945059982353
+0.03441119438815951 0 0.2071332260913472
+0.05160042106434482 0 0.2028893097908703
+0.06877011618985067 0 0.1985640387353795
+0.08591395695818609 0 0.1941591961406112
+0.1030257799603583 0 0.1896770558071548
+0.1200996191803228 0 0.1851203681055412
+0.1371297427933841 0 0.1804923430115754
+0.1541106884887298 0 0.1757966303245727
+0.004879385353119851 0 0.1236534257787396
+0.009370047560521589 0 0.1187097706573487
+0.004686756180850941 0 0.1190182983575929
+0.01461277566649551 0 0.122626074209361
+0.01868702830716295 0 0.1175066226177776
+0.01403372446859135 0 0.1181520174311772
+0.02427018126424197 0 0.1209567310415671
+0.0278982025679811 0 0.1156354388119236
+0.02330122412225215 0 0.1166143094929097
+0.03380146629002543 0 0.1186533370165707
+0.03695148302618478 0 0.1131065800550111
+0.03243682055158954 0 0.1144134793694736
+0.04315727249259438 0 0.1157277420026109
+0.0457957558721413 0 0.1099344619312877
+0.04138889243812406 0 0.1115619202431104
+0.05228932351280871 0 0.1121956319357258
+0.05438119587253919 0 0.1061374659315041
+0.05010694992832772 0 0.1080760372564644
+0.06115072247603273 0 0.1080764321326569
+0.0626595735248468 0 0.1017378261563868
+0.0585419459210345 0 0.1039761463791547
+0.06969624117288756 0 0.1033931875122903
+0.07058455253892847 0 0.09676149217313054
+0.06664657849444901 0 0.09928634913935701
+0.07788259890634736 0 0.09817242052009406
+0.07811197538530029 0 0.09123796909898338
+0.0743755825106702 0 0.09403438404900463
+0.08566872931481895 0 0.09244396761565374
+0.08168600871718816 0 0.088251455570072
+0.005283657425775642 0 0.1333862034974937
+0.01016304277889549 0 0.1280758667953204
+0.005081521389447747 0 0.1285198146381197
+0.0158279901537436 0 0.1320232595538788
+0.02027772304134362 0 0.1265734669679194
+0.01522038291011956 0 0.1273246668816199
+0.02630351818927262 0 0.1300789877193673
+0.03029597641217097 0 0.1244622517930149
+0.02528684972675729 0 0.1255178593804672
+0.0366648431631431 0 0.1275605783907695
+0.04017033304099756 0 0.1217516636143252
+0.03523315472658426 0 0.1231069577036701
+0.04686727083298615 0 0.1244787617068095
+0.04985421028458297 0 0.1184548400950953
+0.04501227166279027 0 0.1201032518547103
+0.05686708661731684 0 0.1208477413924846
+0.05930219984554258 0 0.1145885332331152
+0.05457820506506278 0 0.1165216866641052
+0.06662182506753872 0 0.1166851072082203
+0.06847034769802887 0 0.110173006107762
+0.06388627377178573 0 0.1123807696704386
+0.0760905317231432 0 0.1120117264895462
+0.07731642519800187 0 0.1052319078940746
+0.07289338644801538 0 0.1077024570009183
+0.08523401560969926 0 0.10685161549668
+0.08580018931804476 0 0.09979212812269955
+0.08155830725802329 0 0.1025120180083871
+0.09401509084902543 0 0.1012317913528455
+0.08984191008192656 0 0.09683787948425397
+0.005704100381196902 0 0.1435082923213556
+0.01098775780697255 0 0.1378166067738629
+0.005493878903486273 0 0.1384472479094252
+0.01709181322005846 0 0.1417963323086806
+0.02193204556682952 0 0.1360029850886965
+0.01645990168690104 0 0.1369097959312797
+0.02841818859059635 0 0.1395661346609065
+0.03278966121303944 0 0.1336421372915773
+0.02736085338993448 0 0.1348225611901369
+0.03964275511018805 0 0.1368241094166652
+0.0435179370602917 0 0.1307425505158573
+0.03815379913666558 0 0.1321923439037173
+0.05072566910570088 0 0.1335798221959859
+0.05407500287839533 0 0.1273160333869381
+0.04879646996934352 0 0.1290292919513977
+0.0616279602444097 0 0.1298459352243837
+0.0644200439833312 0 0.1233776432299302
+0.05924752343086327 0 0.1253468383084342
+0.07231177176079723 0 0.1256381292837164
+0.07451355284500474 0 0.1189455932620065
+0.06946679841416797 0 0.1211616182459684
+0.08274059389317842 0 0.1209750070228234
+0.08431757277131688 0 0.114041140250363
+0.07941556280816081 0 0.1164933667561848
+0.0928794889786195 0 0.1158779782692632
+0.0937959318170019 0 0.1086884535155802
+0.08905675229415938 0 0.1113647968829716
+0.1026953068416857 0 0.1103711280364439
+0.09835519884535604 0 0.1058014596946452
+0.006141361053963811 0 0.1540352646769605
+0.01184546143516071 0 0.1479469763393633
+0.005922730717580356 0 0.1487717784991556
+0.01840618920640711 0 0.1519603279532129
+0.02365254099130485 0 0.1458096839225302
+0.01774900121323279 0 0.1468783301309468
+0.03061744580359105 0 0.1494327674602645
+0.03538309340288255 0 0.1431892181986408
+0.02951781719709371 0 0.1444994510605855
+0.04273978352894384 0 0.1464581816642428
+0.04699944523624934 0 0.1400930728822672
+0.04119126931956595 0 0.141641145540454
+0.05473840330132837 0 0.1430449250857369
+0.05846462717077991 0 0.1365316743994556
+0.05273203620351463 0 0.1383123736408614
+0.0665792688067197 0 0.1392040567908036
+0.0697426018803495 0 0.1325183176157318
+0.06410361452556471 0 0.1345249960075937
+0.07822931630999336 0 0.1349492722235943
+0.08079848619044108 0 0.128069083891579
+0.07527054403539529 0 0.1302937007536554
+0.08965665853623159 0 0.1302968187587951
+0.09159876623896891 0 0.1232027418900395
+0.086198626214705 0 0.1256359128908093
+0.1008307812664487 0 0.1252653955340047
+0.1021115040060993 0 0.1179406319132284
+0.09685513512253413 0 0.120571686901634
+0.1117227314560582 0 0.1198760381684289
+0.1072090191488714 0 0.1151235831024359
+0.00659611215354066 0 0.1649833159241008
+0.01273747320750447 0 0.158482560675768
+0.006368736603752236 0 0.1595092903005338
+0.01977314023190687 0 0.1625308834209513
+0.02544185623080951 0 0.1560086506983963
+0.01908966471915699 0 0.1572456056870821
+0.03290467330459876 0 0.159694065569119
+0.0380802628773803 0 0.1531181823309872
+0.0317610595540949 0 0.1545634165146917
+0.04596069308373596 0 0.1564776167993276
+0.0506202137352995 0 0.1498176161325832
+0.0443502383063399 0 0.1514678992317852
+0.05891164686385556 0 0.1528886320887485
+0.06302983642988443 0 0.1461159410419021
+0.05682502508259196 0 0.1479667785872427
+0.07172862971037974 0 0.1489365032176023
+0.07527806208721502 0 0.1420246189665039
+0.06915394925854972 0 0.144070280004203
+0.0843835626397913 0 0.1446328608788262
+0.08733481686256964 0 0.1375575141359167
+0.08130643947489233 0 0.1397910665512103
+0.09684936576340923 0 0.1399915029619875
+0.09917120743707118 0 0.1327308075848661
+0.09325301214982042 0 0.1351441608603913
+0.1091001252439531 0 0.1350283094871272
+0.1107596990733306 0 0.1275628974362659
+0.1049654532552009 0 0.130146852510566
+0.1211112530529172 0 0.1297611447034817
+0.1164169922544875 0 0.1248185914359551
+0.007069053297912393 0 0.1763692892404778
+0.01366516545145305 0 0.1694395683938122
+0.006832582725726526 0 0.1706763025822801
+0.02119476930086685 0 0.1735242611260984
+0.02730274408132067 0 0.1666155761532375
+0.02048395476638686 0 0.1680275722735249
+0.03528338990972974 0 0.1703658156204961
+0.04088531913300783 0 0.1634443050363777
+0.03409403160716425 0 0.1650299405948076
+0.04931043902646934 0 0.1668978293575732
+0.05438581297719747 0 0.1599311411205232
+0.04763556605510265 0 0.1616877230784504
+0.06325182017633316 0 0.1631260873893443
+0.06777765406299124 0 0.1560835783575695
+0.06108173352009436 0 0.1580073597390464
+0.07708396505937747 0 0.1590582475187577
+0.08103494070676596 0 0.1519111723787906
+0.07440629738487861 0 0.15399737536818
+0.0907839788337655 0 0.154703793097484
+0.09413260076679084 0 0.1474254815975196
+0.08758377073677841 0 0.1496683269881551
+0.1043297812925111 0 0.1500739745505627
+0.1070465462891295 0 0.1426399959150306
+0.1005895735279602 0 0.1450327387562751
+0.1177002429953152 0 0.1451817400157696
+0.1197538219501388 0 0.1375700535878662
+0.1134001841196342 0 0.1401050247514484
+0.1308753155304044 0 0.1400416555175673
+0.1259932842916676 0 0.1349014001105313
+0.00756091208752966 0 0.1882107014765381
+0.01462996538544205 0 0.1808348564237159
+0.007314982692721027 0 0.1822899953585067
+0.02267326353099405 0 0.1849573739269446
+0.02923806744641885 0 0.1776467786293271
+0.02193401641593045 0 0.1792408175265215
+0.03775725517640349 0 0.1814644356618068
+0.04380257763971439 0 0.1741834726529759
+0.03652032254306662 0 0.1759151256411515
+0.0527941748031625 0 0.1777348504063332
+0.05830203618991744 0 0.1704492071109305
+0.05105230691481592 0 0.1723163398819532
+0.06776560041645133 0 0.1737730408903768
+0.07271538440286704 0 0.1664499211687906
+0.06550871029639224 0 0.1684495641398605
+0.08265351381633967 0 0.169584861580525
+0.08702209447285011 0 0.1621931879304921
+0.07986873943785858 0 0.1643215545496413
+0.0974404116683326 0 0.1651775625935331
+0.101202296029248 0 0.157688167760525
+0.09411219525104905 0 0.1599406778455085
+0.1121094134344009 0 0.1605597449913349
+0.1152368986976641 0 0.1529455517813725
+0.108219597363456 0 0.1553168597709488
+0.1266443654471009 0 0.1557413077541535
+0.1291077097447521 0 0.1479774959885505
+0.1221723042212081 0 0.1504615238849615
+0.1410299404960552 0 0.1507333867526909
+0.1359526280132319 0 0.1453875211351311
+0.008072445228575007 0 0.2005257701979759
+0.01563335731610467 0 0.1926859559664677
+0.007816678658052334 0 0.1943682358372407
+0.02421089752985554 0 0.1968478112359233
+0.03125080374474493 0 0.1891192291964002
+0.0234420805304248 0 0.1909025925814339
+0.04033007505295629 0 0.1930070005010075
+0.04683652648461486 0 0.1853522069664141
+0.03904366511467989 0 0.1872357180814072
+0.05641726000981363 0 0.1890053522933959
+0.06237490832836127 0 0.181387995733315
+0.05460571740648806 0 0.1833701013498645
+0.07245993186473595 0 0.1848458725278944
+0.07785062395282602 0 0.1772309176849562
+0.07011276614059364 0 0.1793094567091356
+0.08844584452180509 0 0.1805325402012748
+0.09324873438531875 0 0.1728864840968435
+0.08554967916907238 0 0.1750587008908999
+0.1043631018141598 0 0.176070282865982
+0.1085547790971736 0 0.1683613613626715
+0.1009017567412462 0 0.1706239227297575
+0.1202002308594844 0 0.1714649462463202
+0.1237548651967117 0 0.1636633298749835
+0.1161548221469427 0 0.1660123456188275
+0.1359462527941031 0 0.1667232581986593
+0.1388357530444922 0 0.1588012360778294
+0.131295309120602 0 0.1612322829764064
+0.151590750457089 0 0.1618527872337905
+0.1463103454765688 0 0.1562930869932374
+0.008604439695596414 0 0.2133334416760482
+0.01667688492417142 0 0.2050110994927617
+0.008338442462085711 0 0.2069296059370115
+0.02581003688967617 0 0.2092138660447913
+0.03334404949536029 0 0.2010505777879529
+0.02501046720976585 0 0.2030308386403573
+0.04300580772625216 0 0.2050112679411087
+0.04999183328384817 0 0.1969676906541633
+0.04166794138960422 0 0.1990091342210581
+0.06018526862709775 0 0.2007266742631249
+0.0666106953530632 0 0.1927643359023575
+0.05830126431845568 0 0.1948660132782604
+0.07734203657401838 0 0.1963616174379954
+0.08319127308569113 0 0.1884431540635323
+0.07490098421937717 0 0.1906037449829449
+0.09446986845927217 0 0.191918125973883
+0.09972443989538612 0 0.1840075121116256
+0.09145785649053861 0 0.1862253330875789
+0.1115626995703405 0 0.187398711956348
+0.1162013614891142 0 0.1794614827107044
+0.1079629006922502 0 0.181734497411165
+0.1286146809868535 0 0.1828063555585583
+0.1326135503572237 0 0.1748098190941741
+0.1244074559231689 0 0.1771356509024393
+0.145620215641057 0 0.178144486668074
+0.1489529180779363 0 0.1700579257725593
+0.14078323421758 0 0.1724338724333667
+0.1625739928234559 0 0.1734169637413774
+0.1570823716402652 0 0.1676348754875767
+0.01776215363605112 0 0.2178292487693372
+0.008881076818029816 0 0.219993430850813
+0.03552102507498166 0 0.2134591803307813
+0.02664158935551894 0 0.2156442145500586
+0.05327335235352494 0 0.2090477936954302
+0.04439718871425164 0 0.2112534870131062
+0.07101591385672251 0 0.2045957296825737
+0.06214463310512616 0 0.2068217616890013
+0.08874554818133855 0 0.2001038799000774
+0.07988073101902599 0 0.2023498047913267
+0.1064591736228263 0 0.1955733812482488
+0.09760236090208375 0 0.1978386305741628
+0.1241538071732096 0 0.1910056089123418
+0.1153064903980131 0 0.1932894950802965
+0.141826582920146 0 0.1864021678802574
+0.1329901950466773 0 0.1887038883962998
+0.1594747697082267 0 0.1817648830516541
+0.1506506763141816 0 0.1840835254659569
+0.1682852788457923 0 0.1794303355175055
+2 4 0 551
+1806
+1807
+1808
+1809
+1810
+1811
+1812
+1813
+1814
+1815
+1816
+1817
+1818
+1819
+1820
+1821
+1822
+1823
+1824
+1825
+1826
+1827
+1828
+1829
+1830
+1831
+1832
+1833
+1834
+1835
+1836
+1837
+1838
+1839
+1840
+1841
+1842
+1843
+1844
+1845
+1846
+1847
+1848
+1849
+1850
+1851
+1852
+1853
+1854
+1855
+1856
+1857
+1858
+1859
+1860
+1861
+1862
+1863
+1864
+1865
+1866
+1867
+1868
+1869
+1870
+1871
+1872
+1873
+1874
+1875
+1876
+1877
+1878
+1879
+1880
+1881
+1882
+1883
+1884
+1885
+1886
+1887
+1888
+1889
+1890
+1891
+1892
+1893
+1894
+1895
+1896
+1897
+1898
+1899
+1900
+1901
+1902
+1903
+1904
+1905
+1906
+1907
+1908
+1909
+1910
+1911
+1912
+1913
+1914
+1915
+1916
+1917
+1918
+1919
+1920
+1921
+1922
+1923
+1924
+1925
+1926
+1927
+1928
+1929
+1930
+1931
+1932
+1933
+1934
+1935
+1936
+1937
+1938
+1939
+1940
+1941
+1942
+1943
+1944
+1945
+1946
+1947
+1948
+1949
+1950
+1951
+1952
+1953
+1954
+1955
+1956
+1957
+1958
+1959
+1960
+1961
+1962
+1963
+1964
+1965
+1966
+1967
+1968
+1969
+1970
+1971
+1972
+1973
+1974
+1975
+1976
+1977
+1978
+1979
+1980
+1981
+1982
+1983
+1984
+1985
+1986
+1987
+1988
+1989
+1990
+1991
+1992
+1993
+1994
+1995
+1996
+1997
+1998
+1999
+2000
+2001
+2002
+2003
+2004
+2005
+2006
+2007
+2008
+2009
+2010
+2011
+2012
+2013
+2014
+2015
+2016
+2017
+2018
+2019
+2020
+2021
+2022
+2023
+2024
+2025
+2026
+2027
+2028
+2029
+2030
+2031
+2032
+2033
+2034
+2035
+2036
+2037
+2038
+2039
+2040
+2041
+2042
+2043
+2044
+2045
+2046
+2047
+2048
+2049
+2050
+2051
+2052
+2053
+2054
+2055
+2056
+2057
+2058
+2059
+2060
+2061
+2062
+2063
+2064
+2065
+2066
+2067
+2068
+2069
+2070
+2071
+2072
+2073
+2074
+2075
+2076
+2077
+2078
+2079
+2080
+2081
+2082
+2083
+2084
+2085
+2086
+2087
+2088
+2089
+2090
+2091
+2092
+2093
+2094
+2095
+2096
+2097
+2098
+2099
+2100
+2101
+2102
+2103
+2104
+2105
+2106
+2107
+2108
+2109
+2110
+2111
+2112
+2113
+2114
+2115
+2116
+2117
+2118
+2119
+2120
+2121
+2122
+2123
+2124
+2125
+2126
+2127
+2128
+2129
+2130
+2131
+2132
+2133
+2134
+2135
+2136
+2137
+2138
+2139
+2140
+2141
+2142
+2143
+2144
+2145
+2146
+2147
+2148
+2149
+2150
+2151
+2152
+2153
+2154
+2155
+2156
+2157
+2158
+2159
+2160
+2161
+2162
+2163
+2164
+2165
+2166
+2167
+2168
+2169
+2170
+2171
+2172
+2173
+2174
+2175
+2176
+2177
+2178
+2179
+2180
+2181
+2182
+2183
+2184
+2185
+2186
+2187
+2188
+2189
+2190
+2191
+2192
+2193
+2194
+2195
+2196
+2197
+2198
+2199
+2200
+2201
+2202
+2203
+2204
+2205
+2206
+2207
+2208
+2209
+2210
+2211
+2212
+2213
+2214
+2215
+2216
+2217
+2218
+2219
+2220
+2221
+2222
+2223
+2224
+2225
+2226
+2227
+2228
+2229
+2230
+2231
+2232
+2233
+2234
+2235
+2236
+2237
+2238
+2239
+2240
+2241
+2242
+2243
+2244
+2245
+2246
+2247
+2248
+2249
+2250
+2251
+2252
+2253
+2254
+2255
+2256
+2257
+2258
+2259
+2260
+2261
+2262
+2263
+2264
+2265
+2266
+2267
+2268
+2269
+2270
+2271
+2272
+2273
+2274
+2275
+2276
+2277
+2278
+2279
+2280
+2281
+2282
+2283
+2284
+2285
+2286
+2287
+2288
+2289
+2290
+2291
+2292
+2293
+2294
+2295
+2296
+2297
+2298
+2299
+2300
+2301
+2302
+2303
+2304
+2305
+2306
+2307
+2308
+2309
+2310
+2311
+2312
+2313
+2314
+2315
+2316
+2317
+2318
+2319
+2320
+2321
+2322
+2323
+2324
+2325
+2326
+2327
+2328
+2329
+2330
+2331
+2332
+2333
+2334
+2335
+2336
+2337
+2338
+2339
+2340
+2341
+2342
+2343
+2344
+2345
+2346
+2347
+2348
+2349
+2350
+2351
+2352
+2353
+2354
+2355
+2356
+0.2138802460636474 0 0.006338300647521283
+0.2122559974490299 0 0.01318328678660145
+0.2104869624186416 0 0.02057496500575538
+0.2085591334862463 0 0.02855633512715678
+0.2064570168887823 0 0.03717356532720951
+0.2041634718933745 0 0.04647616355079368
+0.2016595382982767 0 0.05651714126596735
+0.1989242546302042 0 0.06735316348328244
+0.1959344711894036 0 0.07904467858944038
+0.1926646649622194 0 0.09165601934167981
+0.1890867668492331 0 0.1052554661461795
+0.1851700166215185 0 0.1199152629983946
+0.1808808679439316 0 0.1357115754344443
+0.1761829742096695 0 0.1527243823916955
+0.2010184861712321 0 0.005946773662133139
+0.1995836927149431 0 0.01236854655357793
+0.1980049937326986 0 0.01930228259750997
+0.1962661208925633 0 0.02678749603468354
+0.1943487871315981 0 0.03486632932190712
+0.1922324431207071 0 0.0435836026863994
+0.1898940163963257 0 0.05298682535603178
+0.1873076384074507 0 0.06312615518816771
+0.1844443682062209 0 0.07405429170390095
+0.1812719269482986 0 0.0858262839664347
+0.1777544643538942 0 0.09849923326539527
+0.1738523880821536 0 0.1121318688513317
+0.1695223003352028 0 0.1267839738376869
+0.1647171028327796 0 0.1425156420384194
+0.1886514093593754 0 0.005570305407188413
+0.1873987843244409 0 0.01158514248385447
+0.1860031007729888 0 0.01807854951342634
+0.1844459164829883 0 0.02508668921606474
+0.1827062585262368 0 0.03264783316435431
+0.1807603000772733 0 0.04080229416468825
+0.1785810145746338 0 0.04959229082937718
+0.1761378151233579 0 0.05906172413772264
+0.173396192267792 0 0.06925584277850802
+0.1703173711725618 0 0.08022076918606191
+0.1668580196536794 0 0.0920028554994861
+0.1629700529549805 0 0.1046478360223127
+0.1586006007182804 0 0.1181997415384983
+0.1536922265157655 0 0.1326995455510432
+0.1767599893443148 0 0.005208316700399608
+0.1756825262530446 0 0.01083186933965825
+0.1744628190774086 0 0.01690188308606144
+0.1730803353164383 0 0.0234512980438136
+0.1715115194791757 0 0.03051466378143681
+0.1697293933013473 0 0.0381279590468369
+0.1677031282042763 0 0.046328315321976
+0.1653976004238115 0 0.05515361735724819
+0.1627729461698821 0 0.06464194957959771
+0.1597841444618838 0 0.07483085112635564
+0.1563806689771748 0 0.08575633841496252
+0.1525062691756363 0 0.09745165060758411
+0.1480989664680123 0 0.1099456720175123
+0.1430913838999951 0 0.1232609912333592
+0.165325931625197 0 0.004860250635804755
+0.16441689347994 0 0.01010756823868954
+0.1633663943581563 0 0.01577047305853056
+0.1621518918752812 0 0.02187880653034015
+0.1607473473069357 0 0.0284635393725764
+0.1591227521592154 0 0.03555648296921046
+0.1572436220676582 0 0.04318987733071029
+0.155070470893886 0 0.05139582237197576
+0.1525582864493444 0 0.06020551380663682
+0.1496560418445483 0 0.06964823760182579
+0.1463062933158343 0 0.07975007198106739
+0.1424449386077344 0 0.09053224154750845
+0.1380012412164919 0 0.1020090667003243
+0.1328982659892363 0 0.1141854582258119
+0.1543316453756799 0 0.004525571728114719
+0.1535845542936191 0 0.009411124873568436
+0.1526967552233373 0 0.01468257880315595
+0.1516437731998918 0 0.02036679546228693
+0.1503971817744649 0 0.02649130436744075
+0.1489240587708192 0 0.03308390982188907
+0.1471864046458593 0 0.04017214849813267
+0.1451405386706116 0 0.04778255796925965
+0.1427364982733727 0 0.05593971018610912
+0.1399174816522818 0 0.06466495537525133
+0.1366193936580896 0 0.07397481580453905
+0.1327705823090439 0 0.08387896361654373
+0.1282918900297666 0 0.09437771544689141
+0.1230971910918621 0 0.1054589841950663
+0.1437602162872796 0 0.004203765086033422
+0.1431688435352486 0 0.00874146779157213
+0.1424374868222136 0 0.01363652663429364
+0.1415398129328684 0 0.01891293866575825
+0.1404450995295107 0 0.02459492455438814
+0.1391176228182755 0 0.03070643564124304
+0.1375160032766107 0 0.03727048615846973
+0.1355925269153543 0 0.04430826527356688
+0.1332924711790046 0 0.05183797593468864
+0.1305534814653385 0 0.05987333784863232
+0.1273050670620416 0 0.06842168486433339
+0.1234683166351636 0 0.07748158098919224
+0.1189559754250737 0 0.08703987770157276
+0.1136730806115233 0 0.09706814377902057
+0.1335953806051016 0 0.003894335621876902
+0.1331537370168589 0 0.008097566749907529
+0.13257280564763 0 0.01263070723915182
+0.1318244665029092 0 0.01751499943554019
+0.1308757896595242 0 0.02277148242281812
+0.1296883574605007 0 0.0284204027706803
+0.128217540403034 0 0.03448042621092451
+0.126411746363157 0 0.04096759921335692
+0.1242116758778612 0 0.04789400068507636
+0.1215496351137947 0 0.05526601329462223
+0.118348983778761 0 0.06308213587272272
+0.1145238303924514 0 0.07133025152755394
+0.1099791344411304 0 0.07998426447085583
+0.1046114359008275 0 0.08900002797827852
+0.1238215001381658 0 0.003596807290857275
+0.1235238268997689 0 0.007478431132714453
+0.1230875352842493 0 0.01166357320503688
+0.1224827872401782 0 0.01617082709834074
+0.1216745301660459 0 0.02101817268033518
+0.1206217561518879 0 0.02622229424055501
+0.1192767107138858 0 0.031797676260461
+0.1175840727522979 0 0.03775542030823032
+0.1154801419315106 0 0.04410171678994503
+0.1128920905420855 0 0.05083589352966342
+0.1097373652342451 0 0.05794795414829612
+0.1059233628484875 0 0.06541551165860778
+0.1013475565690511 0 0.07320002097750358
+0.09589831598376856 0 0.0812422243211135
+0.2146263117208793 0 0.003169150323760641
+0.2205683611981887 0 0.006541894679633414
+0.2213629870712823 0 0.003270947339815409
+0.2130681217563386 0 0.009760793717061367
+0.2188455959013806 0 0.01360695170717083
+0.2197069785497848 0 0.0100744231934016
+0.2113714799338357 0 0.01687912589617841
+0.2169775861260981 0 0.02123675985710129
+0.2179115910137394 0 0.01742185578213607
+0.2095230479524439 0 0.02456565006645608
+0.2149515000258674 0 0.02947613145393405
+0.2159645430759831 0 0.02535644565551628
+0.2075080751875143 0 0.03286495022718314
+0.2127532963535606 0 0.03837332804825955
+0.2138523981897144 0 0.03392472975109555
+0.2053102443910784 0 0.04182486443900159
+0.210367606846335 0 0.0479802951981384
+0.2115604515999471 0 0.04317681162320198
+0.2029115050958256 0 0.05149665240838051
+0.207777609678587 0 0.05835290553652166
+0.2090726082624615 0 0.05316660036732833
+0.2002918964642404 0 0.06193515237462489
+0.204964895057442 0 0.0695512077936144
+0.2063712523680144 0 0.06395205666506852
+0.1974293629098039 0 0.07319892103636141
+0.2019093247321579 0 0.08163967976622835
+0.2034371098947997 0 0.07559544377992262
+0.1942995680758115 0 0.0853503489655601
+0.1985888887210294 0 0.09468748173249369
+0.2002491067265915 0 0.08816358074936984
+0.1908757159057263 0 0.09845574274392965
+0.1949795641384252 0 0.1087687072391882
+0.1967842264297272 0 0.1017280944858414
+0.1871283917353758 0 0.112585364572287
+0.1910551834536148 0 0.1239626279491081
+0.1930173737960192 0 0.1163656675941514
+0.183025442282725 0 0.1278134192164194
+0.1867873230920664 0 0.1403539282581523
+0.1889212532728409 0 0.1321582781036291
+0.1785319210768005 0 0.1442179789130699
+0.1821452273171685 0 0.1580329273678454
+0.1844662752046173 0 0.1491934278129996
+0.1736101356839257 0 0.1618808397749388
+0.1796205076502628 0 0.1675643576756011
+0.2016711667978156 0 0.002973386831066569
+0.2074493661174397 0 0.006142537154827211
+0.2081487392593468 0 0.003071268577413605
+0.2003010894430876 0 0.009157660107855535
+0.2059198450819865 0 0.01277591667008969
+0.2066846055997131 0 0.00945922691245845
+0.1987943432238209 0 0.01583541457554395
+0.2042459780756701 0 0.01993862380163267
+0.2050829115788283 0 0.01635727023586118
+0.197135557312631 0 0.02304488931609675
+0.2024126271894048 0 0.02767191558092016
+0.2033293026325375 0 0.02380526969127642
+0.1953074540120807 0 0.03082691267829533
+0.2004029020101902 0 0.03601994732455831
+0.2014077645997975 0 0.03184593145273924
+0.1932906151261526 0 0.03922496600415326
+0.1981979575070408 0 0.04502988311859654
+0.1993004297586155 0 0.04052491522157743
+0.1910632297585164 0 0.04828521402121559
+0.1957767773473011 0 0.05475198331099956
+0.196987367427171 0 0.04989093321479805
+0.1886008274018882 0 0.05805649027209975
+0.1931159465188275 0 0.06523965933572506
+0.1944463619330643 0 0.05999582132336231
+0.1858760033068358 0 0.06859022344603433
+0.1901894196978122 0 0.07654948514667066
+0.1916526831083198 0 0.07089457224119788
+0.1828581475772598 0 0.07994028783516782
+0.186968295955259 0 0.08874115165405726
+0.1885788578265357 0 0.08264531840036396
+0.1795131956510964 0 0.09216275861591498
+0.1834206156015637 0 0.1018773497057874
+0.1851944557784113 0 0.09530925067992232
+0.1758034262180239 0 0.1053155510583635
+0.179511202351836 0 0.1160235659248632
+0.1814659089766999 0 0.1089504578153253
+0.1716873442086782 0 0.1194579213445093
+0.1752015841395672 0 0.1312477746360656
+0.1773563932457016 0 0.1236356702804644
+0.1671197015839912 0 0.1346498079380531
+0.1704500385212245 0 0.1476200122150574
+0.1728258113303959 0 0.1394338934255615
+0.1620517280399074 0 0.1509509976427273
+0.1678309318619093 0 0.1564159187088258
+0.189214296687315 0 0.002785152703594206
+0.1948349477653037 0 0.005758539534660776
+0.1954427317425729 0 0.002879269767330388
+0.1880250968419081 0 0.008577723945521441
+0.193491238519692 0 0.0119768445187162
+0.1941630931424979 0 0.008867692026688488
+0.1867009425487148 0 0.0148318459986404
+0.1920040472528437 0 0.01869041605546815
+0.1927476428862678 0 0.01533363028709218
+0.1852245086279886 0 0.02158261936474554
+0.1903560186877758 0 0.02593709262537414
+0.1911800329703098 0 0.02231375434042114
+0.1835760875046125 0 0.02886726119020952
+0.1885275228289174 0 0.03375708124313072
+0.1894417707583466 0 0.02984708693425243
+0.181733279301755 0 0.03672506366452127
+0.1864963715989902 0 0.04219294842554382
+0.1875119472139538 0 0.03797501483433727
+0.1796706573259536 0 0.04519729249703271
+0.1842375154854797 0 0.05128955809270448
+0.185366943542235 0 0.04674125325912415
+0.1773594148489959 0 0.05432700748354991
+0.1817227267654043 0 0.06109393966294517
+0.182980121125442 0 0.05619174887782483
+0.174767003695575 0 0.06415878345811533
+0.1789202802370065 0 0.07165506724120449
+0.1803215035012054 0 0.06637450345207484
+0.1718567817201769 0 0.07473830598228497
+0.1757946490604302 0 0.08302352657624831
+0.1773574646487183 0 0.0773392969087264
+0.1685876954131206 0 0.08611181234277401
+0.1723062420037868 0 0.09525104438244068
+0.1740504455321085 0 0.08913728547934449
+0.1649140363043299 0 0.09832534576089941
+0.1684112205185671 0 0.1083898524368222
+0.170358731261177 0 0.1018204484096314
+0.1607853268366304 0 0.1114237887804055
+0.1640614505267416 0 0.1224918576880926
+0.1662363355226543 0 0.1154408550624574
+0.1561464136170229 0 0.1254496435447707
+0.1592046646742726 0 0.1376075937947313
+0.1616330576005071 0 0.130049725741412
+0.1509378745430172 0 0.140441534060656
+0.156494801291459 0 0.1456962658516884
+0.1772365369619934 0 0.002604158350199804
+0.1827056993518451 0 0.00538931105379401
+0.1832254168246492 0 0.002694655526897005
+0.1762212577986797 0 0.008020093020028929
+0.1815406552887427 0 0.01120850591175636
+0.1821231773202939 0 0.008298908482775185
+0.1750726726652266 0 0.01386687621285984
+0.1802329599251987 0 0.01749021629974389
+0.1808868076069707 0 0.01434936110575012
+0.1737715771969234 0 0.02017659056493752
+0.1787631258997133 0 0.02426899362993917
+0.179498042912456 0 0.02087960496484153
+0.172295927397807 0 0.0269829809126252
+0.1771088890027062 0 0.03158124847289556
+0.1779360074512097 0 0.02792512105141736
+0.1706204563902615 0 0.03432131141413686
+0.1752448466893103 0 0.03946512660576257
+0.1761768678460083 0 0.03552318753932907
+0.1687162607528118 0 0.04222813718440645
+0.1731420713894551 0 0.04796030307567659
+0.1741934590393827 0 0.04371271484071958
+0.1665503643140439 0 0.0507409663396121
+0.1707677077735847 0 0.05710767074748542
+0.1719548895815199 0 0.052533986911581
+0.1640852732968468 0 0.05989778346842295
+0.1680845692188371 0 0.06694889617905286
+0.1694261384962109 0 0.06202828346326914
+0.1612785453158829 0 0.06973640035297668
+0.1650507578172228 0 0.07752581015620877
+0.1665676635180299 0 0.07223735316763083
+0.1580824067195293 0 0.08029359477065909
+0.1616193443154271 0 0.0888795969572243
+0.163335051066325 0 0.08320270355671655
+0.1544434690764055 0 0.09160399451127332
+0.1577381610653084 0 0.1010497433149484
+0.1596787526903677 0 0.09496467013608637
+0.1503026178218243 0 0.1036986613125482
+0.1533497835931464 0 0.1140727067780053
+0.1555439723292274 0 0.1075612250464768
+0.1455951751840037 0 0.1166033316254358
+0.1483918052078803 0 0.1279802683922012
+0.1508707944005133 0 0.1210264875851032
+0.1402514769465706 0 0.1303362806132528
+0.145594675744796 0 0.1353889073369564
+0.1657194602906118 0 0.002430125317902378
+0.1710429604847559 0 0.005034283668102182
+0.171477998626317 0 0.002517141834051091
+0.1648714125525685 0 0.007483909437247147
+0.1700497098664923 0 0.01046971878917389
+0.1705463351756241 0 0.007752001228638038
+0.1638916439190481 0 0.01293902064861005
+0.1689146067177825 0 0.016336178072296
+0.1694821582921374 0 0.01340294843073495
+0.1627591431167187 0 0.01882463979443536
+0.1676161135958598 0 0.02266505228707688
+0.1682653601568211 0 0.01950061517968644
+0.1614496195911084 0 0.02517117295145828
+0.1661294333930557 0 0.0294891015770066
+0.1668727734944577 0 0.02607707693204174
+0.1599350497330755 0 0.03201001117089343
+0.1644260727302814 0 0.03684222100802368
+0.1652777530616685 0 0.03316566129251515
+0.1581831871134368 0 0.03937318014996038
+0.1624733751359673 0 0.04475909632634315
+0.1634497239331243 0 0.04080065866718341
+0.1561570464807721 0 0.04729284985134303
+0.1602340356588488 0 0.05327471986461198
+0.161353705397408 0 0.04901690809547757
+0.1538143786716152 0 0.05580066808930629
+0.1576656163096132 0 0.06242373169311726
+0.158949825984231 0 0.05784922577886462
+0.1511071641469463 0 0.06492687570423131
+0.154720093153216 0 0.07223954436409072
+0.1561928547314146 0 0.06733163802860401
+0.1479811675801913 0 0.07469915479144659
+0.1513434811465045 0 0.08275320519801496
+0.1530317871498603 0 0.07749637478105284
+0.1443756159617843 0 0.08514115676428792
+0.1474756038916853 0 0.09399194607754628
+0.1494095425190949 0 0.08837257563778063
+0.1402230899121132 0 0.09627065412391639
+0.1430501038422521 0 0.1059773693589183
+0.1452628538669687 0 0.0999846577182323
+0.1354497536028641 0 0.1080972624630681
+0.1379948249446157 0 0.1187232247295856
+0.1405224643934339 0 0.112350297044252
+0.1299760946312278 0 0.1206196907495156
+0.1351137857889061 0 0.125477985681391
+0.1546453481255934 0 0.002262785864057359
+0.1598287885004385 0 0.004692911181959736
+0.1601824042081067 0 0.002346455590979868
+0.1539580998346495 0 0.006968348300841577
+0.1590007238867795 0 0.009759346556128987
+0.159414756193609 0 0.007226128869044363
+0.1531406547584782 0 0.0120468518383622
+0.1580315747907468 0 0.01522652593084326
+0.1585161493387632 0 0.01249293624348612
+0.1521702642116146 0 0.01752468713272145
+0.1568978325375865 0 0.02112280099631354
+0.1574647036641666 0 0.01817466346357841
+0.1510204774871784 0 0.02342904991486384
+0.1555722645407003 0 0.02747742187000857
+0.1562350485391434 0 0.02430011143316106
+0.149660620272642 0 0.02978760709466491
+0.1540234054650173 0 0.03432019639554976
+0.1547978350028588 0 0.03089880913277917
+0.1480552317083392 0 0.03662802916001087
+0.1522150133567587 0 0.04168101291442149
+0.153119209410888 0 0.03800060465498562
+0.1461634716582354 0 0.04397735323369616
+0.1501055047822488 0 0.04958919017061771
+0.1511602590695038 0 0.0456351015425196
+0.1439385184719921 0 0.05186113407768438
+0.1476473923613585 0 0.05807261199637297
+0.1488764485718037 0 0.05383090108349534
+0.1413269899628272 0 0.06030233278068022
+0.144786761748415 0 0.06715659648853856
+0.1462170770548867 0 0.06261460424245575
+0.1382684376551857 0 0.06931988558989519
+0.1414628434869619 0 0.07686244389280322
+0.1431248026176885 0 0.07200952019067089
+0.1346949879835668 0 0.07892688971054139
+0.1376077604583892 0 0.08720560258202609
+0.1395353019726756 0 0.08203402323741465
+0.1305312361694052 0 0.08912833953171757
+0.1331465656231293 0 0.09819339107360787
+0.1353771630407592 0 0.09269949682781697
+0.1256945405608144 0 0.09991834982097889
+0.1279977285405492 0 0.1098222212104391
+0.1305721470818393 0 0.1040078061420235
+0.1200959193449661 0 0.1112768158965683
+0.1250360069880968 0 0.1159482533230418
+0.1439971633491945 0 0.002101882543016711
+0.1490459308314798 0 0.00436466840707407
+0.149321255737397 0 0.002182334203537035
+0.1434645299112641 0 0.006472616438802776
+0.1483766989144338 0 0.009076296332570283
+0.1487113148729568 0 0.006720482369822176
+0.1428031651787311 0 0.01118899721293289
+0.1475671210227755 0 0.0141595527187248
+0.1479719099686047 0 0.01161792452564754
+0.141988649877541 0 0.01627473265002595
+0.1465917930663801 0 0.01963986706402259
+0.1470794570445778 0 0.0168997098913737
+0.1409924562311896 0 0.0217539316100732
+0.1454211406519878 0 0.02554311446091445
+0.1460064668591839 0 0.02259149076246852
+0.1397813611738931 0 0.02765068009781559
+0.1440208407945474 0 0.03189517273156605
+0.1447209907232676 0 0.02871914359624025
+0.1383168130474431 0 0.03398846089985638
+0.142351203961235 0 0.0387213173283012
+0.1431860223778911 0 0.03530824502993363
+0.1365542650959825 0 0.0407893757160183
+0.1403665327929829 0 0.04604541162141326
+0.141358868377109 0 0.04238336447485723
+0.1344424990471794 0 0.04807312060412776
+0.1380144847261887 0 0.05388884306039888
+0.1391905087595858 0 0.04996712734090607
+0.1319229763221715 0 0.05585565689166048
+0.1352354815588101 0 0.06226914661194182
+0.1366249831424994 0 0.05807899483617035
+0.1289292742636901 0 0.06414751135648286
+0.1319622303600656 0 0.07119825033443622
+0.1335988559594379 0 0.06673369847318902
+0.1253866918486026 0 0.07295163292676282
+0.1281194494721037 0 0.08068027230286798
+0.1300408399160847 0 0.07593926131865211
+0.1212121460301187 0 0.08226072934538251
+0.1236239327274201 0 0.09070879657423209
+0.1258716910997619 0 0.08569453443855005
+0.1163145280182985 0 0.09205401074029666
+0.1183851358516927 0 0.1012635639870434
+0.1210045342895564 0 0.09598618028063777
+0.1105957507983711 0 0.1022932823821197
+0.1153458350716681 0 0.1067850491393434
+0.1337585241207171 0 0.001947167810938451
+0.1386777984461906 0 0.004049050353955162
+0.1388778437349659 0 0.002024525176977581
+0.1333745588109803 0 0.005995951185892216
+0.1381612902760537 0 0.008419517270739829
+0.1384195443611221 0 0.006234283812347496
+0.1328632713322445 0 0.01036413699452967
+0.1375051462349218 0 0.01313361693672273
+0.1378332182554878 0 0.01077656710373128
+0.1321986360752696 0 0.01507285333734601
+0.1366821397178888 0 0.01821396905064922
+0.1370936429764053 0 0.01567379299368598
+0.1313501280812167 0 0.02014324092917916
+0.1356604445945175 0 0.02368320348860313
+0.1361712921562032 0 0.02094858626962618
+0.1302820735600125 0 0.02559594259674921
+0.1344029901393881 0 0.02956341920596167
+0.1350317173669528 0 0.0266233113472824
+0.1289529489317673 0 0.03145041449080241
+0.1328667718398223 0 0.03587545618469712
+0.1336348809896052 0 0.0327194376953294
+0.1273146433830955 0 0.03772401271214072
+0.1310021366392556 0 0.04263793224346191
+0.131934454239539 0 0.03925669421407951
+0.1253117111205091 0 0.04443079994921664
+0.1287520735284329 0 0.0498659883098825
+0.1298771050838443 0 0.04625196027667219
+0.1228806554958279 0 0.0515800069898493
+0.1260515582895665 0 0.05756967557162727
+0.1274018159089997 0 0.05371783194075489
+0.1199493094462778 0 0.05917407458367248
+0.1228270254204013 0 0.06575191036852807
+0.1244392918549839 0 0.06166079297007767
+0.1164364070856062 0 0.06720619370013833
+0.1189960735138075 0 0.07440591625837309
+0.1209115494671044 0 0.07007891331345058
+0.1122514824167909 0 0.07565725799920489
+0.1144675549331021 0 0.08351207108621429
+0.1167318142234548 0 0.0789589936722937
+0.107295285170979 0 0.08449214622456717
+0.1091422582561754 0 0.09303408587864954
+0.1118049065946387 0 0.08827307848243192
+0.1014609733315135 0 0.09365526937023905
+0.1060283620649428 0 0.09797427587617988
+0.1239136787053922 0 0.001798403645428638
+0.1287084403716337 0 0.003745571456367089
+0.1288361014130595 0 0.001872785728183544
+0.1236726635189673 0 0.005537619211785864
+0.1283387819583139 0 0.007787998941310991
+0.1285236111649738 0 0.00576678519883904
+0.1233056810920091 0 0.009571002168875666
+0.1278301704659396 0 0.01214714022209435
+0.1280844762121268 0 0.009967569581702669
+0.1227851612622137 0 0.01391720015168881
+0.1271536268715437 0 0.01684291326694046
+0.1274918986687417 0 0.01449502674451741
+0.122078658703112 0 0.01859449988933796
+0.1262751599127851 0 0.02189482755157665
+0.1267143933921644 0 0.01936887040925856
+0.1211481431589669 0 0.0236202334604451
+0.1251550568061943 0 0.02732134850561766
+0.1257151083594897 0 0.02460808802859716
+0.1199492334328869 0 0.02900998525050801
+0.1237471255584599 0 0.03313905123569275
+0.1244510911823271 0 0.0302301998706552
+0.1184303917330919 0 0.03477654828434566
+0.1219979095577274 0 0.03936150976079363
+0.1228725175580937 0 0.03625028049824319
+0.1165321073419043 0 0.04092856854908768
+0.1198459089046859 0 0.04599785873751069
+0.1209219092312067 0 0.04267968424915216
+0.1141861162367981 0 0.04746880515980422
+0.1172208628279401 0 0.05305095341214282
+0.118533385866313 0 0.04952440607482676
+0.1113147278881653 0 0.05439192383897977
+0.114043174506503 0 0.06051504501050942
+0.1156320186672216 0 0.05678299921132612
+0.1078303640413663 0 0.06168173290345195
+0.1102235966204695 0 0.06837288159308086
+0.1121333855634862 0 0.06444396330179514
+0.1036354597087693 0 0.06930776631805569
+0.1056633455050908 0 0.0765921427241797
+0.1079434710627801 0 0.0724825121586303
+0.09862293627640986 0 0.07722112264930854
+0.100254875942298 0 0.08512112614969601
+0.1029591107236944 0 0.08085663443693786
+0.09267753345658414 0 0.08534948762525663
+0.0970692533940532 0 0.08950237849775221
+0.119122519156643 0 0.003453764824392074
+0.1191865654073047 0 0.001726968985389254
+0.1188940624324153 0 0.007180769779067061
+0.119015266003612 0 0.005317578223631684
+0.1185273091598445 0 0.01119860492061117
+0.1187188055781919 0 0.009190314100479637
+0.1179915952985987 0 0.01552459039944089
+0.1182688916298841 0 0.01336266050119089
+0.1172508477287396 0 0.02017523530632866
+0.117632176707406 0 0.01785156879064313
+0.1162628132263679 0 0.02516551129612148
+0.1167695188181847 0 0.02267282598728501
+0.1149782349129514 0 0.03050789263377713
+0.1156351827916962 0 0.02784021391863868
+0.1133399989119379 0 0.03621110353092657
+0.1141759997679151 0 0.03336440562874898
+0.1112822890835826 0 0.04227850338355497
+0.1123305148401071 0 0.03925153477189071
+0.1087298095087964 0 0.04870602826357509
+0.11002817125831 0 0.04550136239577765
+0.1055971640216644 0 0.05547959755641889
+0.1071886052193058 0 0.05210495458069284
+0.1017885226938503 0 0.062571886728993
+0.1037211602396075 0 0.05904177559340357
+0.0971977595259354 0 0.0699383654603167
+0.09952477751601024 0 0.06627609601917578
+0.09170931603451396 0 0.07751251103407733
+0.09448848089861292 0 0.07375261961393288
+0.08849275536682659 0 0.08139125172105677
+2 5 0 1073
+2357
+2358
+2359
+2360
+2361
+2362
+2363
+2364
+2365
+2366
+2367
+2368
+2369
+2370
+2371
+2372
+2373
+2374
+2375
+2376
+2377
+2378
+2379
+2380
+2381
+2382
+2383
+2384
+2385
+2386
+2387
+2388
+2389
+2390
+2391
+2392
+2393
+2394
+2395
+2396
+2397
+2398
+2399
+2400
+2401
+2402
+2403
+2404
+2405
+2406
+2407
+2408
+2409
+2410
+2411
+2412
+2413
+2414
+2415
+2416
+2417
+2418
+2419
+2420
+2421
+2422
+2423
+2424
+2425
+2426
+2427
+2428
+2429
+2430
+2431
+2432
+2433
+2434
+2435
+2436
+2437
+2438
+2439
+2440
+2441
+2442
+2443
+2444
+2445
+2446
+2447
+2448
+2449
+2450
+2451
+2452
+2453
+2454
+2455
+2456
+2457
+2458
+2459
+2460
+2461
+2462
+2463
+2464
+2465
+2466
+2467
+2468
+2469
+2470
+2471
+2472
+2473
+2474
+2475
+2476
+2477
+2478
+2479
+2480
+2481
+2482
+2483
+2484
+2485
+2486
+2487
+2488
+2489
+2490
+2491
+2492
+2493
+2494
+2495
+2496
+2497
+2498
+2499
+2500
+2501
+2502
+2503
+2504
+2505
+2506
+2507
+2508
+2509
+2510
+2511
+2512
+2513
+2514
+2515
+2516
+2517
+2518
+2519
+2520
+2521
+2522
+2523
+2524
+2525
+2526
+2527
+2528
+2529
+2530
+2531
+2532
+2533
+2534
+2535
+2536
+2537
+2538
+2539
+2540
+2541
+2542
+2543
+2544
+2545
+2546
+2547
+2548
+2549
+2550
+2551
+2552
+2553
+2554
+2555
+2556
+2557
+2558
+2559
+2560
+2561
+2562
+2563
+2564
+2565
+2566
+2567
+2568
+2569
+2570
+2571
+2572
+2573
+2574
+2575
+2576
+2577
+2578
+2579
+2580
+2581
+2582
+2583
+2584
+2585
+2586
+2587
+2588
+2589
+2590
+2591
+2592
+2593
+2594
+2595
+2596
+2597
+2598
+2599
+2600
+2601
+2602
+2603
+2604
+2605
+2606
+2607
+2608
+2609
+2610
+2611
+2612
+2613
+2614
+2615
+2616
+2617
+2618
+2619
+2620
+2621
+2622
+2623
+2624
+2625
+2626
+2627
+2628
+2629
+2630
+2631
+2632
+2633
+2634
+2635
+2636
+2637
+2638
+2639
+2640
+2641
+2642
+2643
+2644
+2645
+2646
+2647
+2648
+2649
+2650
+2651
+2652
+2653
+2654
+2655
+2656
+2657
+2658
+2659
+2660
+2661
+2662
+2663
+2664
+2665
+2666
+2667
+2668
+2669
+2670
+2671
+2672
+2673
+2674
+2675
+2676
+2677
+2678
+2679
+2680
+2681
+2682
+2683
+2684
+2685
+2686
+2687
+2688
+2689
+2690
+2691
+2692
+2693
+2694
+2695
+2696
+2697
+2698
+2699
+2700
+2701
+2702
+2703
+2704
+2705
+2706
+2707
+2708
+2709
+2710
+2711
+2712
+2713
+2714
+2715
+2716
+2717
+2718
+2719
+2720
+2721
+2722
+2723
+2724
+2725
+2726
+2727
+2728
+2729
+2730
+2731
+2732
+2733
+2734
+2735
+2736
+2737
+2738
+2739
+2740
+2741
+2742
+2743
+2744
+2745
+2746
+2747
+2748
+2749
+2750
+2751
+2752
+2753
+2754
+2755
+2756
+2757
+2758
+2759
+2760
+2761
+2762
+2763
+2764
+2765
+2766
+2767
+2768
+2769
+2770
+2771
+2772
+2773
+2774
+2775
+2776
+2777
+2778
+2779
+2780
+2781
+2782
+2783
+2784
+2785
+2786
+2787
+2788
+2789
+2790
+2791
+2792
+2793
+2794
+2795
+2796
+2797
+2798
+2799
+2800
+2801
+2802
+2803
+2804
+2805
+2806
+2807
+2808
+2809
+2810
+2811
+2812
+2813
+2814
+2815
+2816
+2817
+2818
+2819
+2820
+2821
+2822
+2823
+2824
+2825
+2826
+2827
+2828
+2829
+2830
+2831
+2832
+2833
+2834
+2835
+2836
+2837
+2838
+2839
+2840
+2841
+2842
+2843
+2844
+2845
+2846
+2847
+2848
+2849
+2850
+2851
+2852
+2853
+2854
+2855
+2856
+2857
+2858
+2859
+2860
+2861
+2862
+2863
+2864
+2865
+2866
+2867
+2868
+2869
+2870
+2871
+2872
+2873
+2874
+2875
+2876
+2877
+2878
+2879
+2880
+2881
+2882
+2883
+2884
+2885
+2886
+2887
+2888
+2889
+2890
+2891
+2892
+2893
+2894
+2895
+2896
+2897
+2898
+2899
+2900
+2901
+2902
+2903
+2904
+2905
+2906
+2907
+2908
+2909
+2910
+2911
+2912
+2913
+2914
+2915
+2916
+2917
+2918
+2919
+2920
+2921
+2922
+2923
+2924
+2925
+2926
+2927
+2928
+2929
+2930
+2931
+2932
+2933
+2934
+2935
+2936
+2937
+2938
+2939
+2940
+2941
+2942
+2943
+2944
+2945
+2946
+2947
+2948
+2949
+2950
+2951
+2952
+2953
+2954
+2955
+2956
+2957
+2958
+2959
+2960
+2961
+2962
+2963
+2964
+2965
+2966
+2967
+2968
+2969
+2970
+2971
+2972
+2973
+2974
+2975
+2976
+2977
+2978
+2979
+2980
+2981
+2982
+2983
+2984
+2985
+2986
+2987
+2988
+2989
+2990
+2991
+2992
+2993
+2994
+2995
+2996
+2997
+2998
+2999
+3000
+3001
+3002
+3003
+3004
+3005
+3006
+3007
+3008
+3009
+3010
+3011
+3012
+3013
+3014
+3015
+3016
+3017
+3018
+3019
+3020
+3021
+3022
+3023
+3024
+3025
+3026
+3027
+3028
+3029
+3030
+3031
+3032
+3033
+3034
+3035
+3036
+3037
+3038
+3039
+3040
+3041
+3042
+3043
+3044
+3045
+3046
+3047
+3048
+3049
+3050
+3051
+3052
+3053
+3054
+3055
+3056
+3057
+3058
+3059
+3060
+3061
+3062
+3063
+3064
+3065
+3066
+3067
+3068
+3069
+3070
+3071
+3072
+3073
+3074
+3075
+3076
+3077
+3078
+3079
+3080
+3081
+3082
+3083
+3084
+3085
+3086
+3087
+3088
+3089
+3090
+3091
+3092
+3093
+3094
+3095
+3096
+3097
+3098
+3099
+3100
+3101
+3102
+3103
+3104
+3105
+3106
+3107
+3108
+3109
+3110
+3111
+3112
+3113
+3114
+3115
+3116
+3117
+3118
+3119
+3120
+3121
+3122
+3123
+3124
+3125
+3126
+3127
+3128
+3129
+3130
+3131
+3132
+3133
+3134
+3135
+3136
+3137
+3138
+3139
+3140
+3141
+3142
+3143
+3144
+3145
+3146
+3147
+3148
+3149
+3150
+3151
+3152
+3153
+3154
+3155
+3156
+3157
+3158
+3159
+3160
+3161
+3162
+3163
+3164
+3165
+3166
+3167
+3168
+3169
+3170
+3171
+3172
+3173
+3174
+3175
+3176
+3177
+3178
+3179
+3180
+3181
+3182
+3183
+3184
+3185
+3186
+3187
+3188
+3189
+3190
+3191
+3192
+3193
+3194
+3195
+3196
+3197
+3198
+3199
+3200
+3201
+3202
+3203
+3204
+3205
+3206
+3207
+3208
+3209
+3210
+3211
+3212
+3213
+3214
+3215
+3216
+3217
+3218
+3219
+3220
+3221
+3222
+3223
+3224
+3225
+3226
+3227
+3228
+3229
+3230
+3231
+3232
+3233
+3234
+3235
+3236
+3237
+3238
+3239
+3240
+3241
+3242
+3243
+3244
+3245
+3246
+3247
+3248
+3249
+3250
+3251
+3252
+3253
+3254
+3255
+3256
+3257
+3258
+3259
+3260
+3261
+3262
+3263
+3264
+3265
+3266
+3267
+3268
+3269
+3270
+3271
+3272
+3273
+3274
+3275
+3276
+3277
+3278
+3279
+3280
+3281
+3282
+3283
+3284
+3285
+3286
+3287
+3288
+3289
+3290
+3291
+3292
+3293
+3294
+3295
+3296
+3297
+3298
+3299
+3300
+3301
+3302
+3303
+3304
+3305
+3306
+3307
+3308
+3309
+3310
+3311
+3312
+3313
+3314
+3315
+3316
+3317
+3318
+3319
+3320
+3321
+3322
+3323
+3324
+3325
+3326
+3327
+3328
+3329
+3330
+3331
+3332
+3333
+3334
+3335
+3336
+3337
+3338
+3339
+3340
+3341
+3342
+3343
+3344
+3345
+3346
+3347
+3348
+3349
+3350
+3351
+3352
+3353
+3354
+3355
+3356
+3357
+3358
+3359
+3360
+3361
+3362
+3363
+3364
+3365
+3366
+3367
+3368
+3369
+3370
+3371
+3372
+3373
+3374
+3375
+3376
+3377
+3378
+3379
+3380
+3381
+3382
+3383
+3384
+3385
+3386
+3387
+3388
+3389
+3390
+3391
+3392
+3393
+3394
+3395
+3396
+3397
+3398
+3399
+3400
+3401
+3402
+3403
+3404
+3405
+3406
+3407
+3408
+3409
+3410
+3411
+3412
+3413
+3414
+3415
+3416
+3417
+3418
+3419
+3420
+3421
+3422
+3423
+3424
+3425
+3426
+3427
+3428
+3429
+0.2308386656655639 0 0.1654907022446148
+0.273569850906479 0 0.1676399321452352
+0.3163010361474277 0 0.1697891620458578
+0.3590322213883249 0 0.1719383919464773
+0.4017634066292489 0 0.1740876218470986
+0.4444945918701292 0 0.176236851747717
+0.4872257771110703 0 0.178386081648339
+0.5299569623520008 0 0.1805353115489604
+0.5726881475929616 0 0.1826845414495833
+0.6154193328337061 0 0.1848337713501954
+0.6581505180744123 0 0.1869830012508056
+0.7008817033151522 0 0.1891322311514177
+0.7436128885558198 0 0.1912814610520256
+0.7863440737964847 0 0.1934306909526336
+0.8290752590371993 0 0.1955799208532443
+0.8718064442779155 0 0.197729150753855
+0.9145376295185773 0 0.1998783806544625
+0.9572688147592825 0 0.2020276105550722
+0.235183579385546 0 0.1469041268880781
+0.2776733805309088 0 0.1488119726942966
+0.3201631816762946 0 0.1507198185005172
+0.362652982821642 0 0.1526276643067348
+0.4051427839670059 0 0.154535510112954
+0.4476325851123374 0 0.1564433559191709
+0.4901223862577222 0 0.1583512017253908
+0.5326121874030972 0 0.1602590475316102
+0.5751019885485007 0 0.162166893337831
+0.6175917896936922 0 0.164074739144042
+0.6600815908388411 0 0.1659825849502515
+0.7025713919840206 0 0.1678904307564627
+0.7450611931291379 0 0.1697982765626702
+0.7875509942742498 0 0.1717061223688776
+0.8300407954194072 0 0.1736139681750875
+0.8725305965645653 0 0.1755218139812975
+0.9150203977096802 0 0.1774296597875045
+0.9575101988548382 0 0.1793375055937134
+0.2392066476391895 0 0.1296943349151453
+0.2814729449926852 0 0.1313786769304696
+0.3237392423461941 0 0.1330630189457956
+0.3660055396996769 0 0.1347473609611192
+0.4082718370531665 0 0.1364317029764441
+0.450538134406634 0 0.138116044991767
+0.4928044317601484 0 0.1398003870070924
+0.5350707291136532 0 0.1414847290224174
+0.5773370264671852 0 0.1431690710377438
+0.6196033238205091 0 0.1448534130530614
+0.6618696211737864 0 0.1465377550683777
+0.7041359185270915 0 0.1482220970836955
+0.7464022158803438 0 0.1499064390990101
+0.7886685132335882 0 0.1515907811143246
+0.8309348105868741 0 0.1532751231296413
+0.8732011079401598 0 0.154959465144958
+0.9154674052934124 0 0.1566438071602722
+0.9577337026467083 0 0.158328149175588
+0.242931710826261 0 0.1137593423934983
+0.2849910602249212 0 0.1152367364548004
+0.3270504096235856 0 0.116714130516104
+0.3691097590222353 0 0.1181915245774053
+0.4111691084208827 0 0.119668918638708
+0.4532284578195179 0 0.1211463127000088
+0.4952878072181936 0 0.1226237067613119
+0.5373471566168602 0 0.1241011008226146
+0.5794065060155524 0 0.1255784948839184
+0.6214658554140404 0 0.1270558889452146
+0.6635252048124783 0 0.1285332830065097
+0.7055845542109409 0 0.1300106770678061
+0.7476439036093596 0 0.1314880711290996
+0.7897032530077679 0 0.1329654651903931
+0.8317626024062146 0 0.1344428592516884
+0.8738219518046602 0 0.1359202533129839
+0.915881301203082 0 0.137397647374277
+0.9579406506015467 0 0.1388750414355717
+0.2463808434020529 0 0.0990047197088523
+0.2882485743242819 0 0.1002904952943976
+0.3301163052465069 0 0.1015762708799442
+0.3719840361687274 0 0.1028620464654889
+0.4138517670909375 0 0.1041478220510347
+0.4557194980131444 0 0.1054335976365789
+0.4975872289353858 0 0.1067193732221251
+0.5394549598576184 0 0.1080051488076709
+0.5813226907798761 0 0.1092909243932178
+0.6231904217019324 0 0.110576699978758
+0.6650581526239352 0 0.1118624755642972
+0.7069258835459602 0 0.1131482511498375
+0.7487936144679497 0 0.1144340267353753
+0.7906613453899263 0 0.1157198023209132
+0.832529076311938 0 0.1170055779064526
+0.8743968072339479 0 0.1182913534919921
+0.9162645381559427 0 0.1195771290775297
+0.9581322690779809 0 0.1208629046630685
+0.2495744846815978 0 0.0853430320135824
+0.2912647910882979 0 0.08645138308414894
+0.3329550974949866 0 0.08755973415471667
+0.3746454039016803 0 0.08866808522528269
+0.4163357103083562 0 0.08977643629584971
+0.4580260167150368 0 0.09088478736641525
+0.4997163231217469 0 0.09199313843698262
+0.5414066295284485 0 0.09310148950754968
+0.5830969359351738 0 0.09420984057811752
+0.6247872423417009 0 0.09531819164867972
+0.6664775487481716 0 0.09642654271924103
+0.7081678551546621 0 0.09753489378980332
+0.7498581615611245 0 0.09864324486036344
+0.7915484679675718 0 0.09975159593092356
+0.8332387743740512 0 0.1008599470014851
+0.8749290807805286 0 0.1019682980720467
+0.9166193871869984 0 0.1030766491426066
+0.9583096935935118 0 0.1041850002131676
+0.2525315599329583 0 0.07269332121654665
+0.294057584381251 0 0.07363739032914735
+0.3355836088295252 0 0.07458145944174903
+0.3771096332778132 0 0.07552552855434927
+0.4186356577260764 0 0.07646959766695031
+0.460161682174352 0 0.07741366677955018
+0.5016877066226522 0 0.07835773589215156
+0.5432137310709438 0 0.07930180500475267
+0.5847397555192586 0 0.08024587411735448
+0.6262657799673778 0 0.08118994322995143
+0.6677918044154376 0 0.08213401234254766
+0.7093178288635152 0 0.08307808145514473
+0.7508438533115718 0 0.08402215056773991
+0.7923698777596111 0 0.08496621968033513
+0.8338959022076802 0 0.08591028879293154
+0.8754219266557458 0 0.08685435790552801
+0.9169479511038121 0 0.08779842701812304
+0.9584739755519215 0 0.08874249613071897
+0.2552695925822189 0 0.06098062599531678
+0.2966435041055541 0 0.06177258218355797
+0.3380174156288641 0 0.06256453837179997
+0.3793913271521961 0 0.06335649456004079
+0.4207652386754969 0 0.06414845074828228
+0.462139150198817 0 0.06494040693652274
+0.5035130617221573 0 0.06573236312476449
+0.5448869732454896 0 0.06652431931300599
+0.5862608847688435 0 0.06731627550124811
+0.6276347962920047 0 0.06810823168948618
+0.6690087078151041 0 0.06890018787772359
+0.7103826193382189 0 0.06969214406596172
+0.7517565308613194 0 0.07048410025419828
+0.7931304423844008 0 0.07127605644243487
+0.8345043539075094 0 0.07206801263067246
+0.8758782654306139 0 0.07285996881891008
+0.9172521769537256 0 0.0736519250071465
+0.9586260884768811 0 0.0744438811953837
+0.2578048080204927 0 0.05013553773176588
+0.2990378742417027 0 0.05078664861804898
+0.3402709404628814 0 0.05143775950433273
+0.38150400668409 0 0.05208887039061547
+0.4227370729052613 0 0.05273998127689882
+0.4639701391264584 0 0.05339109216318129
+0.5052032053476713 0 0.0540422030494648
+0.5464362715688765 0 0.05469331393574817
+0.5876693377901029 0 0.05534442482203201
+0.6289024040111386 0 0.0559955357083125
+0.6701354702321102 0 0.05664664659459248
+0.7113685364530953 0 0.05729775748087303
+0.7526016026740721 0 0.05794886836715234
+0.793834668895028 0 0.05859997925343161
+0.8350677351160085 0 0.05925109013971171
+0.8763008013369848 0 0.05990220102599188
+0.9175338675579747 0 0.06055331191227102
+0.9587669337790082 0 0.06120442279855081
+0.2601522297227458 0 0.04009378933883027
+0.3012548836271652 0 0.04061448790835123
+0.3423575375315477 0 0.0411351864778727
+0.3834601914359669 0 0.04165588504739341
+0.4245628453403434 0 0.04217658361691454
+0.4656654992447517 0 0.04269728218643502
+0.5067681531491719 0 0.04321798075595631
+0.5478708070535846 0 0.04373867932547749
+0.5889734609580176 0 0.04425937789499903
+0.6300761148622622 0 0.04478007646451793
+0.6711787687664409 0 0.04530077503403639
+0.7122814226706309 0 0.04582147360355532
+0.753384076574818 0 0.04634217217307322
+0.7944867304789829 0 0.04686287074259112
+0.8355893843831705 0 0.04738356931210971
+0.876692038287353 0 0.04790426788162831
+0.9177946921915552 0 0.04842496645114612
+0.9588973460958009 0 0.04894566502066444
+0.26232576832531 0 0.03079587420576961
+0.3033076700851436 0 0.03119582063082808
+0.344289571844935 0 0.03159576705588696
+0.3852714736047698 0 0.03199571348094526
+0.4262533753645563 0 0.03239565990600389
+0.4672352771243806 0 0.032795606331062
+0.5082171788842134 0 0.03319555275612075
+0.5491990806440386 0 0.0335954991811794
+0.5901809824038833 0 0.03399544560623835
+0.6311628841635417 0 0.03439539203129523
+0.6721447859231322 0 0.03479533845635181
+0.7131266876827322 0 0.03519528488140873
+0.7541085894423346 0 0.03559523130646489
+0.7950904912019136 0 0.03599517773152103
+0.8360723929615129 0 0.03639512415657769
+0.8770542947211069 0 0.03679507058163436
+0.9180361964807257 0 0.03719501700669043
+0.9590180982403882 0 0.03759496343174691
+0.2643383040529528 0 0.02218669359314949
+0.3052083982723627 0 0.02247483247785191
+0.3460784924917257 0 0.02276297136255464
+0.3869485867111381 0 0.02305111024725691
+0.4278186809304976 0 0.02333924913195946
+0.4686887751498998 0 0.02362738801666162
+0.5095588693693071 0 0.02391552690136424
+0.5504289635887072 0 0.02420366578606678
+0.5912990578081261 0 0.02449180467076954
+0.6321691520273609 0 0.02477994355547082
+0.6730392462465254 0 0.02506808244017188
+0.713909340465698 0 0.02535622132487318
+0.7547794346848782 0 0.02564436020957393
+0.795649528904033 0 0.02593249909427468
+0.8365196231232065 0 0.02622063797897579
+0.877389717342374 0 0.02650877686367691
+0.9182598115615721 0 0.0267969157483776
+0.9591299057808134 0 0.02708505463307858
+0.2662017630720689 0 0.01421523001150099
+0.3069683317904178 0 0.01439984339526185
+0.3477349005087151 0 0.0145844567790229
+0.3885014692270675 0 0.01476907016278367
+0.4292680379453627 0 0.01495368354654461
+0.4700346066637053 0 0.01513829693030531
+0.5108011753820499 0 0.0153229103140663
+0.5515677441003876 0 0.01550752369782724
+0.5923343128187434 0 0.01569213708158832
+0.6331008815369167 0 0.01587675046534845
+0.673867450255018 0 0.01606136384910843
+0.7146340189731264 0 0.01624597723286857
+0.7554005876912462 0 0.01643059061662836
+0.7961671564093397 0 0.01661520400038816
+0.8369337251274501 0 0.01679981738414817
+0.877700293845554 0 0.01698443076790821
+0.9184668625636935 0 0.01716904415166796
+0.9592334312818759 0 0.01735365753542789
+0.2679271881048057 0 0.00683424514912489
+0.3085978998768922 0 0.006923001586504279
+0.349268611648923 0 0.007011758023883755
+0.3899393234210141 0 0.007100514461263099
+0.4306100351930442 0 0.007189270898642523
+0.4712807469651258 0 0.00727802733602183
+0.5119514587372065 0 0.007366783773401279
+0.5526221705092804 0 0.007455540210780702
+0.5932928822813722 0 0.007544296648160195
+0.633963594053283 0 0.007633053085539231
+0.6746343058251201 0 0.007721809522918196
+0.7153050175969629 0 0.00781056596029724
+0.7559757293688214 0 0.007899322397676108
+0.7966464411406523 0 0.007988078835054983
+0.8373171529124985 0 0.008076835272433965
+0.8779878646843382 0 0.008165591709812953
+0.9186585764562174 0 0.008254348147191806
+0.9593292882281395 0 0.008343104584570746
+0.2094730730451157 0 0.1644160872943051
+0.228492412268446 0 0.1755274528871588
+0.2070616459425295 0 0.1743876642317117
+0.2522042582860214 0 0.166565317194925
+0.271353944920311 0 0.1778070301980545
+0.2499231785943785 0 0.1766672415426067
+0.2949354435269533 0 0.1687145470955465
+0.3142154775722151 0 0.1800866075089524
+0.2927847112462662 0 0.1789468188535037
+0.3376666287678763 0 0.1708637769961676
+0.3570770102240608 0 0.182366184819847
+0.3356462438981308 0 0.1812263961643993
+0.3803978140087869 0 0.1730130068967879
+0.3999385428759387 0 0.1846457621307436
+0.37850777655 0 0.1835059734752953
+0.4231289992496891 0 0.1751622367974078
+0.442800075527767 0 0.1869253394416371
+0.4213693092018543 0 0.1857855507861904
+0.4658601844905997 0 0.177311466698028
+0.4856616081796599 0 0.1892049167525344
+0.4642308418537164 0 0.1880651280970859
+0.5085913697315356 0 0.1794606965986497
+0.5285231408315422 0 0.1914844940634311
+0.5070923745056104 0 0.1903447054079832
+0.5513225549724812 0 0.1816099264992719
+0.5713846734834553 0 0.1937640713743294
+0.5499539071575024 0 0.1926242827188804
+0.5940537402133339 0 0.1837591563998894
+0.61424620613515 0 0.1960436486852161
+0.5928154398093373 0 0.1949038600297747
+0.6367849254540592 0 0.1859083863005005
+0.6571077387868085 0 0.1983232259961009
+0.6356769724609703 0 0.197183437340658
+0.6795161106947822 0 0.1880576162011116
+0.6999692714385026 0 0.2006028033069877
+0.6785385051126487 0 0.1994630146515439
+0.722247295935486 0 0.1902068461017216
+0.7428308040901188 0 0.2028823806178701
+0.7214000377643109 0 0.2017425919624289
+0.7649784811761522 0 0.1923560760023296
+0.7856923367417339 0 0.2051619579287525
+0.7642615704159522 0 0.2040221692733127
+0.8077096664168419 0 0.1945053059029389
+0.8285538693934008 0 0.2074415352396378
+0.8071231030675552 0 0.2063017465841945
+0.8504408516575575 0 0.1966545358035496
+0.87141540204507 0 0.2097211125505232
+0.8499846357192343 0 0.2085813238950804
+0.8931720368982464 0 0.1988037657041588
+0.9142769346966788 0 0.2120006898614051
+0.8928461683708664 0 0.2108609012059637
+0.9359032221389298 0 0.2009529956047673
+0.957138467348331 0 0.2142802671722893
+0.9357077010225112 0 0.2131404785168475
+0.9786344073796412 0 0.2031022255053775
+0.9785692336741639 0 0.2154200558277276
+0.2139386788128737 0 0.1459502039849692
+0.2330111225255549 0 0.1561974145663464
+0.2117058759289945 0 0.1551831456396379
+0.2564284799582274 0 0.1478580497911873
+0.2756216157186939 0 0.1582259524197659
+0.2543163691221245 0 0.1572116834930562
+0.2989182811036017 0 0.1497658955974069
+0.3182321089118612 0 0.1602544902731875
+0.2969268623152775 0 0.1592402213464767
+0.3414080822489683 0 0.151673741403626
+0.3608426021049835 0 0.162283028126606
+0.3395373555084223 0 0.1612687591998967
+0.383897883394324 0 0.1535815872098444
+0.4034530952981274 0 0.1643115659800263
+0.3821478487015554 0 0.1632972970533162
+0.4263876845396717 0 0.1554894330160625
+0.4460635884912333 0 0.1663401038334439
+0.4247583418946804 0 0.1653258349067351
+0.4688774856850298 0 0.1573972788222808
+0.4886740816843962 0 0.1683686416868649
+0.4673688350878147 0 0.1673543727601544
+0.5113672868304098 0 0.1593051246285005
+0.531284574877549 0 0.1703971795402853
+0.5099793282809727 0 0.1693829106135751
+0.5538570879757989 0 0.1612129704347206
+0.5738950680707311 0 0.1724257173937072
+0.55258982147414 0 0.1714114484669962
+0.5963468891210965 0 0.1631208162409365
+0.6165055612636992 0 0.1744542552471187
+0.5952003146672151 0 0.1734399863204129
+0.6388366902662667 0 0.1650286620471468
+0.6591160544566267 0 0.1764827931005285
+0.6378108078601629 0 0.1754685241738236
+0.6813264914114309 0 0.1669365078533571
+0.7017265476495864 0 0.1785113309539402
+0.6804213010531066 0 0.1774970620272344
+0.7238162925565792 0 0.1688443536595664
+0.7443370408424788 0 0.1805398688073479
+0.7230317942460326 0 0.179525599880644
+0.7663060937016939 0 0.1707521994657739
+0.7869475340353673 0 0.1825684066607556
+0.7656422874389232 0 0.1815541377340517
+0.8087958948468286 0 0.1726600452719825
+0.8295580272283032 0 0.1845969445141659
+0.8082527806318353 0 0.1835826755874607
+0.8512856959919863 0 0.1745678910781925
+0.8721685204212404 0 0.1866254823675763
+0.8508632738247719 0 0.1856112134408711
+0.8937754971371228 0 0.176475736884401
+0.9147790136141287 0 0.1886540202209835
+0.8934737670176847 0 0.1876397512942799
+0.9362652982822592 0 0.178383582690609
+0.9573895068070604 0 0.1906825580743928
+0.9360842602105945 0 0.1896682891476882
+0.9787550994274191 0 0.1802914284968185
+0.9786947534035302 0 0.1916968270010931
+0.2180734989624503 0 0.1288521639074835
+0.2371951135123678 0 0.1382992309016117
+0.2160060888876623 0 0.1374011839462252
+0.2603397963159373 0 0.1305365059228074
+0.279573162761797 0 0.1400953248123831
+0.2583841381370824 0 0.1391972778569974
+0.3026060936694396 0 0.1322208479381326
+0.3219512120112443 0 0.1418914187231564
+0.3007621873865207 0 0.1409933717677697
+0.3448723910229355 0 0.1339051899534574
+0.3643292612606595 0 0.143687512633927
+0.3431402366359519 0 0.1427894656785417
+0.3871386883764217 0 0.1355895319687817
+0.4067073105100862 0 0.1454836065446991
+0.3855182858853728 0 0.144585559589313
+0.4294049857299003 0 0.1372738739841055
+0.4490853597594857 0 0.1472797004554689
+0.427896335134786 0 0.146381653500084
+0.4716712830833912 0 0.1389582159994297
+0.4914634090089353 0 0.1490757943662416
+0.4702743843842105 0 0.1481777474108553
+0.5139375804369009 0 0.1406425580147549
+0.5338414582583753 0 0.1508718882770138
+0.5126524336336553 0 0.1499738413216277
+0.5562038777904192 0 0.1423269000300806
+0.5762195075078429 0 0.1526679821877874
+0.555030482883109 0 0.1517699352324006
+0.5984701751438471 0 0.1440112420454026
+0.6185975567571007 0 0.1544640760985517
+0.5974085321324718 0 0.1535660291431696
+0.6407364724971478 0 0.1456955840607196
+0.6609756060063138 0 0.1562601700093146
+0.6397865813817073 0 0.1553621230539332
+0.683002769850439 0 0.1473799260760366
+0.703353655255556 0 0.1580562639200791
+0.6821646306309349 0 0.1571582169646969
+0.7252690672037176 0 0.1490642680913528
+0.7457317045047409 0 0.1598523578308401
+0.7245426798801484 0 0.1589543108754596
+0.767535364556966 0 0.1507486101066673
+0.788109753753919 0 0.1616484517416011
+0.7669207291293298 0 0.1607504047862206
+0.8098016619102312 0 0.1524329521219829
+0.8304878030031406 0 0.1634445456523644
+0.8092987783785299 0 0.1625464986969827
+0.852067959263517 0 0.1541172941372997
+0.8728658522523626 0 0.1652406395631278
+0.8516768276277518 0 0.1643425926077461
+0.8943342566167861 0 0.1558016361526151
+0.9152439015015463 0 0.1670367334738884
+0.8940548768769544 0 0.1661386865185081
+0.9366005539700604 0 0.1574859781679301
+0.9576219507507733 0 0.1688328273846507
+0.9364329261261597 0 0.1679347804292696
+0.9788668513233542 0 0.1591703201832464
+0.9788109753753866 0 0.16973087434003
+0.2219020361269391 0 0.1130206453628476
+0.2410691792327253 0 0.1217268386543218
+0.2199877675446939 0 0.1209364046351687
+0.2639613855255911 0 0.1144980394241493
+0.2832320026088032 0 0.123307706692635
+0.2621505909207642 0 0.1225172726734784
+0.3060207349242534 0 0.1159754334854522
+0.3253948259848899 0 0.1248885747309498
+0.3043134142968465 0 0.1240981407117924
+0.3480800843229105 0 0.1174528275467547
+0.3675576493609561 0 0.1264694427692622
+0.346476237672923 0 0.125679008750106
+0.390139433721559 0 0.1189302216080567
+0.4097204727370246 0 0.1280503108075761
+0.3886390610489903 0 0.1272598767884192
+0.4321987831202003 0 0.1204076156693584
+0.451883296113076 0 0.1296311788458879
+0.4308018844250503 0 0.128840744826732
+0.4742581325188557 0 0.1218850097306603
+0.494046119489171 0 0.1312120468842021
+0.4729647078011234 0 0.130421612865045
+0.5163174819175269 0 0.1233624037919632
+0.5362089428652567 0 0.132792914922516
+0.5151275311772139 0 0.1320024809033591
+0.5583768313162063 0 0.1248397978532665
+0.5783717662413688 0 0.1343737829608311
+0.5572903545533128 0 0.1335833489416735
+0.6004361807147964 0 0.1263171919145665
+0.6205345896172747 0 0.135954650999138
+0.5994531779293217 0 0.1351642169799846
+0.6424955301132593 0 0.1277945859758622
+0.6626974129931325 0 0.1375355190374437
+0.6416160013052036 0 0.1367450850182909
+0.6845548795117096 0 0.1292719800371579
+0.7048602363690162 0 0.1391163870757508
+0.6837788246810743 0 0.1383259530565973
+0.7266142289101503 0 0.1307493740984528
+0.7470230597448517 0 0.1406972551140548
+0.7259416480569341 0 0.1399068210949028
+0.7686735783085638 0 0.1322267681597463
+0.7891858831206781 0 0.1422781231523589
+0.7681044714327648 0 0.1414876891332069
+0.8107329277069912 0 0.1337041622210408
+0.8313487064965444 0 0.1438589911906649
+0.8102672948086113 0 0.1430685571715118
+0.8527922771054374 0 0.1351815562823362
+0.87351152987241 0 0.145439859228971
+0.8524301181844772 0 0.1446494252098179
+0.8948516265038711 0 0.1366589503436305
+0.9156743532482472 0 0.1470207272672746
+0.8945929415603285 0 0.1462302932481228
+0.9369109759023143 0 0.1381363444049244
+0.9578371766241275 0 0.1486015953055799
+0.9367557649361874 0 0.1478111612864273
+0.9789703253007733 0 0.1396137384662194
+0.9789185883120638 0 0.149392029324734
+0.2254469779409462 0 0.09836183191607994
+0.244656277114157 0 0.1063820310511753
+0.2236745070339425 0 0.1056912386394642
+0.2673147088631674 0 0.09964760750162496
+0.2866198172746015 0 0.107763615874599
+0.2656380471943792 0 0.1070728234628871
+0.3091824397853944 0 0.1009333830871709
+0.3285833574350462 0 0.1091452006980241
+0.3076015873548239 0 0.1084544082863115
+0.3510501707076171 0 0.1022191586727166
+0.3705468975954814 0 0.1105267855214471
+0.3495651275152638 0 0.1098359931097356
+0.3929179016298325 0 0.1035049342582618
+0.4125104377559101 0 0.1119083703448714
+0.3915286676756958 0 0.1112175779331592
+0.4347856325520409 0 0.1047907098438068
+0.4544739779163312 0 0.1132899551682938
+0.4334922078361206 0 0.1125991627565826
+0.4766533634742651 0 0.106076485429352
+0.4964375180767897 0 0.1146715399917185
+0.4754557479965604 0 0.1139807475800062
+0.5185210943965021 0 0.107362261014898
+0.5384010582372393 0 0.1160531248151428
+0.5174192881570144 0 0.1153623324034306
+0.5603888253187472 0 0.1086480366004444
+0.5803645983977143 0 0.1174347096385681
+0.5593828283174768 0 0.1167439172268554
+0.6022565562409042 0 0.1099338121859879
+0.6223281385579864 0 0.1188162944619863
+0.6013463684778503 0 0.1181255020502772
+0.6441242871629338 0 0.1112195877715276
+0.6642916787182067 0 0.1201978792854034
+0.6433099086380966 0 0.1195070868736949
+0.6859920180849477 0 0.1125053633570673
+0.7062552188784506 0 0.1215794641088218
+0.6852734487983285 0 0.1208886716971126
+0.7278597490069549 0 0.1137911389426064
+0.7482187590386546 0 0.1229610489322374
+0.7272369889585526 0 0.1222702565205296
+0.769727479928938 0 0.1150769145281442
+0.7901822991988471 0 0.1243426337556531
+0.7692005291187508 0 0.1236518413439453
+0.8115952108509321 0 0.1163626901136829
+0.8321458393590763 0 0.1257242185790705
+0.8111640692789617 0 0.1250334261673618
+0.8534629417729429 0 0.1176484656992224
+0.874109379519304 0 0.127105803402488
+0.8531276094391901 0 0.1264150109907793
+0.8953306726949453 0 0.1189342412847609
+0.9160729196795123 0 0.1284873882259034
+0.8950911495994083 0 0.1277965958141957
+0.9371984036169618 0 0.1202200168702991
+0.9580364598397637 0 0.1298689730493201
+0.9370546897596381 0 0.1291781806376117
+0.9790661345389904 0 0.1215057924558383
+0.9790182299198819 0 0.1305597654610319
+0.228729331478255 0 0.08478885647829937
+0.2479776640418254 0 0.09217387586121735
+0.2270881547095984 0 0.09157534419719848
+0.2704196378849478 0 0.08589720754886568
+0.2897566827062898 0 0.09337093918927328
+0.2688671733740576 0 0.09277240752524532
+0.3121099442916422 0 0.08700555861943281
+0.3315357013707467 0 0.09456800251733045
+0.3106461920385183 0 0.09396947085330186
+0.3538002506983334 0 0.08811390968999969
+0.3733147200352038 0 0.0957650658453858
+0.3524252107029753 0 0.09516653418135815
+0.3954905571050182 0 0.08922226076056619
+0.4150937386996468 0 0.09696212917344221
+0.3942042293674253 0 0.09636359750941401
+0.4371808635116965 0 0.09033061183113247
+0.4568727573640906 0 0.09815919250149707
+0.4359832480318687 0 0.09756066083746964
+0.4788711699183918 0 0.09143896290169894
+0.4986517760285664 0 0.09935625582955386
+0.4777622666963285 0 0.09875772416552546
+0.5205614763250976 0 0.09254731397226615
+0.5404307946930335 0 0.1005533191576103
+0.5195412853607999 0 0.09995478749358208
+0.5622517827318112 0 0.0936556650428336
+0.5822098133575249 0 0.1017503824856676
+0.5613203040252792 0 0.101151850821639
+0.6039420891384373 0 0.09476401611339862
+0.6239888320218167 0 0.1029474458137188
+0.6030993226896707 0 0.1023489141496932
+0.6456323955449362 0 0.09587236718396037
+0.6657678506860534 0 0.1041445091417691
+0.6448783413539351 0 0.103545977477744
+0.6873227019514168 0 0.09698071825452217
+0.7075468693503111 0 0.1053415724698204
+0.6866573600181822 0 0.1047430408057948
+0.7290130083578933 0 0.09808906932508338
+0.749325888014537 0 0.1065386357978694
+0.7284363786824239 0 0.1059401041338449
+0.7707033147643482 0 0.0991974203956435
+0.791104906678749 0 0.1077356991259184
+0.770215397346643 0 0.1071371674618939
+0.8123936211708116 0 0.1003057714662043
+0.8328839253429946 0 0.1089327624539689
+0.8119944160108719 0 0.1083342307899436
+0.8540839275772899 0 0.1014141225367659
+0.8746629440072382 0 0.1101298257820194
+0.8537734346751163 0 0.1095312941179941
+0.8957742339837635 0 0.1025224736073266
+0.9164419626714706 0 0.1113268891100681
+0.8955524533393544 0 0.1107283574460438
+0.9374645403902551 0 0.1036308246778871
+0.9582209813357463 0 0.1125239524381181
+0.9373314720036084 0 0.1119254207740931
+0.9791548467967559 0 0.1047391757484483
+0.9791104906678731 0 0.1131224841021545
+0.2317685477088191 0 0.07222128666024652
+0.2510530223072781 0 0.07901817661506452
+0.2302489395935368 0 0.07850507156927418
+0.2732945721571047 0 0.073165355772847
+0.2926611877347745 0 0.08004438670664815
+0.2718571050210262 0 0.07953128166085634
+0.3148205966053881 0 0.07410942488544819
+0.3342693531622559 0 0.08107059679823285
+0.3134652704485151 0 0.08055749175244049
+0.3563466210536692 0 0.07505349399804914
+0.3758775185897467 0 0.08209680688981598
+0.3550734358760013 0 0.08158370184402441
+0.3978726455019448 0 0.07599756311064979
+0.4174856840172163 0 0.08312301698140001
+0.3966816013034815 0 0.08260991193560799
+0.4393986699502142 0 0.07694163222325025
+0.4590938494446944 0 0.08414922707298272
+0.4382897667309554 0 0.08363612202719137
+0.4809246943985021 0 0.07788570133585088
+0.5007020148721995 0 0.08517543716456709
+0.4798979321584468 0 0.0846623321187749
+0.5224507188467979 0 0.07882977044845212
+0.5423101802996961 0 0.08620164725615118
+0.5215060975859478 0 0.08568854221035914
+0.5639767432951013 0 0.07977383956105358
+0.5839183457272161 0 0.087227857347736
+0.5631142630134562 0 0.08671475230194359
+0.6055027677433182 0 0.08071790867365296
+0.6255265111545394 0 0.08825406743931558
+0.6047224284408778 0 0.08774096239352579
+0.6470287921914077 0 0.08166197778624955
+0.6671346765818046 0 0.08928027753089435
+0.6463305938681719 0 0.08876717248510496
+0.6885548166394764 0 0.08260604689884619
+0.7087428420090887 0 0.09030648762247402
+0.6879387592954465 0 0.08979338257668419
+0.7300808410875435 0 0.08355011601144233
+0.7503510074363482 0 0.09133269771405167
+0.7295469247227184 0 0.09081959266826287
+0.7716068655355914 0 0.08449418512403753
+0.7919591728635915 0 0.09235890780562934
+0.7711550901499697 0 0.09184580275984053
+0.8131328899836456 0 0.08543825423663334
+0.8335673382908657 0 0.09338511789720831
+0.8127632555772286 0 0.09287201285141883
+0.8546589144317129 0 0.08638232334922977
+0.8751755037181372 0 0.09441132798878735
+0.8543714210045015 0 0.09389822294299782
+0.8961849388797789 0 0.08732639246182552
+0.9167836691454052 0 0.09543753808036481
+0.8959795864317712 0 0.09492443303457607
+0.9377109633278669 0 0.08827046157442101
+0.9583918345727167 0 0.09646374817194328
+0.937587751859061 0 0.09595064312615406
+0.9792369877759608 0 0.08921453068701719
+0.9791959172863584 0 0.09697685321773467
+0.2345826368205581 0 0.06058464790119638
+0.2539005762575886 0 0.06683697360593172
+0.2331755922646885 0 0.06640296728072193
+0.2759565483438865 0 0.06137660408943738
+0.2953505442434026 0 0.06770498625635266
+0.2746255602504956 0 0.06727097993114219
+0.3173304598672091 0 0.06216856027767897
+0.3368005122291946 0 0.0685729989067745
+0.3160755282362986 0 0.06813899258156357
+0.3587043713905301 0 0.06296051646592038
+0.3782504802150047 0 0.06944101155719504
+0.3575254962220997 0 0.06900700523198475
+0.4000782829138465 0 0.06375247265416153
+0.4197004482007867 0 0.0703090242076163
+0.3989754642078956 0 0.06987501788240566
+0.4414521944371569 0 0.06454442884240251
+0.4611504161865845 0 0.07117703685803646
+0.4404254321936856 0 0.07074303053282638
+0.4828261059604871 0 0.06533638503064362
+0.5026003841724047 0 0.07204504950845803
+0.4818754001794946 0 0.07161104318324726
+0.5242000174838235 0 0.06612834121888525
+0.5440503521582167 0 0.07291306215887933
+0.5233253681653107 0 0.07247905583366868
+0.5655739290071666 0 0.06692029740712704
+0.5855003201440511 0 0.07378107480930129
+0.5647753361511341 0 0.07334706848409031
+0.6069478405304241 0 0.06771225359536714
+0.6269502881296912 0 0.07464908745971881
+0.6062253041368711 0 0.07421508113451004
+0.6483217520535545 0 0.06850420978360489
+0.6684002561152709 0 0.07551710011013563
+0.6476752721224812 0 0.07508309378492721
+0.6896956635766616 0 0.06929616597184265
+0.7098502241008671 0 0.07638511276055322
+0.689125240108069 0 0.07595110643534443
+0.7310695750997691 0 0.07008812216008001
+0.7513001920864456 0 0.0772531254109691
+0.7305752080936563 0 0.07681911908576117
+0.7724434866228601 0 0.07088007834831658
+0.7927501600720059 0 0.078121138061385
+0.7720251760792258 0 0.07768713173617706
+0.8138173981459551 0 0.07167203453655366
+0.8342001280575948 0 0.078989150711802
+0.8134751440648004 0 0.0785551443865935
+0.8551913096690617 0 0.07246399072479126
+0.8756500960431799 0 0.07985716336221904
+0.8549251120503873 0 0.0794231570370105
+0.8965652211921697 0 0.07325594691302828
+0.9171000640287689 0 0.08072517601263476
+0.8963750800359742 0 0.08029116968742689
+0.9379391327153034 0 0.07404790310126511
+0.9585500320144014 0 0.08159318866305133
+0.9378250480215852 0 0.08115918233784306
+0.9793130442384406 0 0.0748398592895025
+0.9792750160072007 0 0.08202719498826147
+0.2371882749098941 0 0.0498099822886245
+0.2565372003013557 0 0.05555808186354133
+0.2358854558652266 0 0.05519731509490874
+0.2784213411310977 0 0.05046109317490743
+0.2978406891736284 0 0.05627961540080347
+0.2771889447374921 0 0.0559188486321724
+0.3196544073522921 0 0.05111220406119085
+0.3391441780458727 0 0.05700114893806635
+0.3184924336097505 0 0.05664038216943491
+0.3608874735734857 0 0.0517633149474741
+0.3804476669181431 0 0.05772268247532813
+0.359795922482008 0 0.05736191570669723
+0.4021205397946757 0 0.05241442583375715
+0.4217511557903791 0 0.05844421601259055
+0.4010994113542611 0 0.05808344924395935
+0.4433536060158598 0 0.05306553672004005
+0.4630546446626377 0 0.05916574954985201
+0.4424029002265084 0 0.05880498278122127
+0.4845866722370649 0 0.05371664760632305
+0.5043581335349143 0 0.05988728308711465
+0.483706389098776 0 0.05952651631848334
+0.5258197384582739 0 0.05436775849260649
+0.5456616224071831 0 0.06060881662437709
+0.5250098779710487 0 0.06024804985574587
+0.5670528046794897 0 0.05501886937889009
+0.5869651112794732 0 0.06133035016164005
+0.566313366843328 0 0.06096958339300856
+0.6082858709006207 0 0.05566998026517225
+0.6282686001515716 0 0.06205188369889934
+0.6076168557155224 0 0.0616911169302697
+0.6495189371216243 0 0.05632109115145249
+0.6695720890236072 0 0.06277341723615804
+0.6489203445875894 0 0.06241265046752869
+0.6907520033426027 0 0.05697220203773275
+0.710875577895657 0 0.06349495077341738
+0.690223833459632 0 0.06313418400478771
+0.7319850695635837 0 0.05762331292401268
+0.7521790667676957 0 0.06421648431067531
+0.7315273223316763 0 0.06385571754204634
+0.77321813578455 0 0.05827442381029197
+0.7934825556397144 0 0.06493801784793324
+0.7728308112037051 0 0.06457725107930427
+0.8144512020055182 0 0.05892553469657166
+0.834786044511759 0 0.06565955138519208
+0.8141343000757367 0 0.06529878461656266
+0.8556842682264967 0 0.0595766455828518
+0.8760895333837994 0 0.06638108492245098
+0.8554377889477792 0 0.06602031815382153
+0.8969173344474798 0 0.06022775646913145
+0.9173930222558502 0 0.06710261845970876
+0.8967412778198248 0 0.06674185169107985
+0.9381504006684915 0 0.06087886735541091
+0.9586965111279446 0 0.06782415199696726
+0.9380447666918974 0 0.06746338522833802
+0.9793834668895041 0 0.06152997824169089
+0.9793482555639723 0 0.06818491876559703
+0.2396009027705424 0 0.03983344005406993
+0.2589785188716193 0 0.04511466353529808
+0.2383945888402176 0 0.04482171117135023
+0.2807035566749555 0 0.04035413862359075
+0.300146378934434 0 0.0457005682632001
+0.2795624489030266 0 0.04540761589924909
+0.3218062105793564 0 0.04087483719311197
+0.3413142389972146 0 0.04628647299110272
+0.3207303089658242 0 0.04599352062715141
+0.3629088644837574 0 0.04139553576263305
+0.3824820990600285 0 0.04687237771900443
+0.3618981690286215 0 0.04657942535505357
+0.4040115183881552 0 0.04191623433215397
+0.4236499591228023 0 0.04745828244690668
+0.4030660290914154 0 0.04716533008295556
+0.4451141722925476 0 0.04243693290167479
+0.4648178191856051 0 0.04804418717480816
+0.4442338891542037 0 0.04775123481085743
+0.4862168261969618 0 0.04295763147119567
+0.5059856792484216 0 0.04863009190271056
+0.4854017492170134 0 0.04833713953875936
+0.5273194801013783 0 0.0434783300407169
+0.5471535393112306 0 0.04921599663061284
+0.5265696092798261 0 0.04892304426666171
+0.5684221340058011 0 0.04399902861023826
+0.5883213993740602 0 0.04980190135851552
+0.5677374693426454 0 0.04950894899456418
+0.60952478791014 0 0.04451972717975848
+0.6294892594367004 0 0.05038780608641522
+0.6089053294053803 0 0.05009485372246537
+0.6506274418143516 0 0.04504042574927716
+0.6706571194992755 0 0.05097371081431443
+0.650073189467988 0 0.05068075845036482
+0.6917300957185359 0 0.04556112431879585
+0.7118249795618631 0 0.05155961554221417
+0.6912410495305692 0 0.05126666317826431
+0.7328327496227245 0 0.04608182288831427
+0.752992839624445 0 0.05214552027011278
+0.7324089095931541 0 0.05185256790616347
+0.7739354035269004 0 0.04660252145783217
+0.7941606996870054 0 0.05273142499801137
+0.7735767696557252 0 0.05243847263406207
+0.8150380574310767 0 0.04712322002735041
+0.8353285597495895 0 0.05331732972591071
+0.8147446297182975 0 0.05302437736196104
+0.8561407113352617 0 0.04764391859686901
+0.876496419812169 0 0.05390323445381009
+0.8559124897808792 0 0.0536102820898604
+0.897243365239454 0 0.04816461716638722
+0.917664279874765 0 0.05448913918170857
+0.897080349843467 0 0.05419618681775933
+0.9383460191436781 0 0.04868531573590528
+0.9588321399374046 0 0.05507504390960763
+0.9382482099060849 0 0.05478209154565809
+0.9794486730479004 0 0.04920601430542373
+0.9794160699687022 0 0.05536799627355606
+0.2418348174453993 0 0.03059590099324046
+0.2612389990240279 0 0.03544483177229994
+0.2407178601079712 0 0.03521467052365395
+0.2828167192052268 0 0.03099584741829885
+0.3022812768561544 0 0.03590515426958966
+0.2817601379400912 0 0.0356749930209448
+0.3237986209650393 0 0.03139579384335752
+0.3433235546882414 0 0.03636547676687983
+0.3228024157721978 0 0.03613531551823474
+0.3647805227248524 0 0.03179574026841611
+0.3843658325203684 0 0.03682579926416933
+0.3638446936043049 0 0.03659563801552458
+0.405762424484663 0 0.03219568669347457
+0.4254081103524499 0 0.03728612176145922
+0.4048869714364091 0 0.03705596051281428
+0.4467443262444685 0 0.03259563311853295
+0.4664503881845661 0 0.03774644425874851
+0.445929249268508 0 0.03751628301010387
+0.487726228004297 0 0.03299557954359138
+0.5074926660166926 0 0.03820676675603853
+0.4869715271006295 0 0.03797660550739352
+0.528708129764126 0 0.03339552596865007
+0.5485349438488116 0 0.03866708925332844
+0.5280138049327522 0 0.03843692800468349
+0.5696900315239609 0 0.03379547239370888
+0.5895772216809505 0 0.03912741175061869
+0.569056082764881 0 0.03889725050197357
+0.6106719332837125 0 0.03419541881876679
+0.630619499512902 0 0.03958773424790658
+0.6100983605969262 0 0.03935757299926263
+0.651653835043337 0 0.03459536524382352
+0.6716617773447866 0 0.0400480567451941
+0.6511406384288443 0 0.03981789549655034
+0.6926357368029322 0 0.03499531166888027
+0.7127040551766816 0 0.04050837924248202
+0.6921829162607341 0 0.04027821799383807
+0.7336176385625335 0 0.03539525809393681
+0.7537463330085763 0 0.04096870173976905
+0.7332251940926289 0 0.04073854049112554
+0.7745995403221241 0 0.03579520451899296
+0.7947886108404483 0 0.04142902423705608
+0.7742674719245124 0 0.04119886298841256
+0.8155814420817132 0 0.03619515094404936
+0.8358308886723418 0 0.0418893467343437
+0.815309749756395 0 0.04165918548569988
+0.8565633438413098 0 0.03659509736910603
+0.87687316650423 0 0.04234966923163134
+0.8563520275882858 0 0.04211950798298752
+0.8975452456009163 0 0.03699504379416239
+0.9179154443361404 0 0.04280999172891828
+0.8973943054201852 0 0.04257983048027481
+0.938527147360557 0 0.03739499021921867
+0.9589577221680945 0 0.04327031422620568
+0.9384365832521175 0 0.04304015297756198
+0.9795090491201941 0 0.03779493664427524
+0.9794788610840472 0 0.04350047547484766
+0.2439032569432537 0 0.02204262415079835
+0.2633320361891314 0 0.02649128389945955
+0.2428690371943269 0 0.02631926257201802
+0.2847733511626578 0 0.0223307630355007
+0.3042580341787532 0 0.02683532655433999
+0.2837950351839423 0 0.02666330522689977
+0.3256434453820442 0 0.02261890192020327
+0.3451840321683304 0 0.0271793692092208
+0.3247210331735417 0 0.02700734788178039
+0.3665135396014319 0 0.02290704080490577
+0.386110030157954 0 0.02752341186410109
+0.3656470311631421 0 0.02735139053666094
+0.4073836338208179 0 0.02319517968960819
+0.4270360281475269 0 0.02786745451898167
+0.4065730291527405 0 0.02769543319154138
+0.4482537280401987 0 0.02348331857431054
+0.4679620261371402 0 0.02821149717386181
+0.4474990271423336 0 0.02803947584642175
+0.4891238222596034 0 0.02377145745901293
+0.5088880241267602 0 0.0285555398287425
+0.4884250251319502 0 0.02838351850130215
+0.5299939164790071 0 0.02405959634371551
+0.5498140221163729 0 0.02889958248362309
+0.5293510231215665 0 0.02872756115618279
+0.5708640106984166 0 0.02434773522841816
+0.5907400201060047 0 0.02924362513850395
+0.5702770211111888 0 0.02907160381106352
+0.6117341049177435 0 0.02463587411312018
+0.6316660180954513 0 0.02958766779338302
+0.6112030191007279 0 0.02941564646594349
+0.6526041991369431 0 0.02492401299782136
+0.6725920160848289 0 0.02993171044826184
+0.6521290170901402 0 0.02975968912082244
+0.6934742933561118 0 0.02521215188252253
+0.7135180140742151 0 0.03027575310314096
+0.6930550150795219 0 0.0301037317757014
+0.7343443875752881 0 0.02550029076722355
+0.7544440120636065 0 0.03061979575801941
+0.7339810130689108 0 0.03044777443058018
+0.7752144817944555 0 0.0257884296519243
+0.7953700100529733 0 0.03096383841289786
+0.7749070110582899 0 0.03079181708545863
+0.8160845760136197 0 0.02607656853662523
+0.8362960080423597 0 0.03130788106777674
+0.8158330090476665 0 0.03113585974033729
+0.8569546702327903 0 0.02636470742132635
+0.8772220060317404 0 0.03165192372265564
+0.85675900703705 0 0.03147990239521619
+0.897824764451973 0 0.02665284630602726
+0.9181480040211489 0 0.03199596637753402
+0.8976850050264447 0 0.03182394505009482
+0.9386948586711927 0 0.02694098519072809
+0.9590740020106008 0 0.03234000903241275
+0.9386110030158749 0 0.03216798770497339
+0.9795649528904067 0 0.02722912407542914
+0.9795370010053004 0 0.03251203035985308
+0.2458184787129001 0 0.0141229233196206
+0.2652700335625109 0 0.01820096180232524
+0.2448608678280769 0 0.01808277373520948
+0.2865850474312434 0 0.01430753670338142
+0.3060883650313903 0 0.01843733793655688
+0.2856791992969506 0 0.01831914986944106
+0.3273516161495664 0 0.01449215008714238
+0.3469066965002204 0 0.01867371407078877
+0.3264975307658053 0 0.01855552600367283
+0.3681181848678913 0 0.01467676347090329
+0.3877250279691028 0 0.01891009020502029
+0.3673158622346616 0 0.01879190213790453
+0.4088847535862151 0 0.01486137685466414
+0.4285433594379301 0 0.01914646633925204
+0.4081341937035166 0 0.01902827827213617
+0.449651322304534 0 0.01504599023842496
+0.4693616909068025 0 0.01938284247348347
+0.4489525251723663 0 0.01926465440636775
+0.4904178910228776 0 0.0152306036221858
+0.5101800223756785 0 0.01961921860771527
+0.4897708566412405 0 0.01950103054059937
+0.5311844597412188 0 0.01541521700594677
+0.5509983538445473 0 0.01985559474194701
+0.5305891881101129 0 0.01973740667483114
+0.5719510284595655 0 0.01559983038970778
+0.5918166853134348 0 0.02009197087617893
+0.5714075195789911 0 0.01997378280906297
+0.61271759717783 0 0.01578444377346838
+0.6326350167821388 0 0.02032834701040964
+0.6122258510477869 0 0.02021015894329428
+0.6534841658959674 0 0.01596905715722844
+0.6734533482507717 0 0.02056472314464016
+0.6530441825164552 0 0.0204465350775249
+0.6942507346140723 0 0.0161536705409885
+0.7142716797194122 0 0.02080109927887087
+0.693862513985092 0 0.02068291121175551
+0.7350173033321863 0 0.01633828392474847
+0.7550900111880622 0 0.02103747541310114
+0.7346808454537371 0 0.02091928734598601
+0.775783872050293 0 0.01652289730850826
+0.7959083426566863 0 0.02127385154733142
+0.7754991769223742 0 0.02115566348021628
+0.8165504407683949 0 0.01670751069226816
+0.8367266741253283 0 0.02151022768156198
+0.8163175083910074 0 0.0213920396144467
+0.8573170094865021 0 0.01689212407602819
+0.877545005593964 0 0.02174660381579256
+0.8571358398596463 0 0.02162841574867727
+0.8980835782046237 0 0.01707673745978808
+0.9183633370626327 0 0.02198297995002278
+0.8979541713282984 0 0.02186479188290767
+0.9388501469227847 0 0.01726135084354792
+0.9591816685313446 0 0.02221935608425324
+0.9387725027969887 0 0.02210116801713801
+0.9796167156409379 0 0.0174459642273079
+0.9795908342656723 0 0.02233754415136971
+0.2475918322187678 0 0.006789866930435218
+0.2670644755884373 0 0.01052473758031294
+0.2467051554658341 0 0.01045639512502738
+0.2882625439908489 0 0.006878623367814585
+0.307783115833655 0 0.01066142249088307
+0.2874237957110461 0 0.010593080035598
+0.3289332557629076 0 0.006967379805194017
+0.3485017560788191 0 0.01079810740145333
+0.328142435956237 0 0.0107297649461682
+0.3696039675349686 0 0.007056136242573428
+0.3892203963240408 0 0.01093479231202339
+0.3688610762014299 0 0.01086644985673836
+0.4102746793070292 0 0.007144892679952811
+0.4299390365692035 0 0.01107147722259357
+0.4095797164466221 0 0.01100313476730848
+0.450945391079085 0 0.007233649117332176
+0.4706576768144156 0 0.01120816213316357
+0.4502983566918095 0 0.01113981967787857
+0.4916161028511662 0 0.007322405554711554
+0.5113763170596282 0 0.01134484704373379
+0.4910169969370218 0 0.01127650458844868
+0.5322868146232435 0 0.00741116199209099
+0.5520949573048339 0 0.01148153195430397
+0.531735637182231 0 0.01141318949901888
+0.5729575263953264 0 0.007499918429470448
+0.5928135975500578 0 0.01161821686487426
+0.5724542774274459 0 0.01154987440958911
+0.6136282381673276 0 0.007588674866849713
+0.6335322377950998 0 0.01175490177544384
+0.6131729176725789 0 0.01168655932015905
+0.6542989499392016 0 0.007677431304228714
+0.6742508780400691 0 0.01189158668601331
+0.6538915579175845 0 0.01182324423072858
+0.6949696617110415 0 0.007766187741607718
+0.7149695182850446 0 0.0120282715965829
+0.6946101981625569 0 0.01195992914129811
+0.7356403734828921 0 0.007854944178986674
+0.7556881585300338 0 0.01216495650715223
+0.7353288384075392 0 0.01209661405186757
+0.7763110852547368 0 0.007943700616365545
+0.796406798774996 0 0.01230164141772157
+0.7760474786525149 0 0.0122332989624369
+0.8169817970265754 0 0.008032457053744474
+0.8371254390199743 0 0.01243832632829107
+0.8167661188974851 0 0.01236998387300632
+0.8576525087984184 0 0.00812121349112346
+0.8778440792649461 0 0.01257501123886058
+0.8574847591424604 0 0.01250666878357582
+0.8983232205702778 0 0.00820996992850238
+0.9185627195099555 0 0.01271169614942988
+0.8982033993874508 0 0.01264335369414523
+0.9389939323421784 0 0.008298726365881276
+0.9592813597550076 0 0.01284838105999932
+0.9389220396324816 0 0.0127800386047146
+0.9796646441140697 0 0.008387482803260239
+0.9796406798775038 0 0.01291672351528407
+0.2687259959785656 0 0.003417122574562445
+0.2484128292001372 0 0.003394933465216311
+0.3093523295354436 0 0.003461500793252139
+0.2890391627570058 0 0.003439311683907292
+0.349978663092264 0 0.003505879011941878
+0.3296654963138576 0 0.003483689902597008
+0.3906049966491471 0 0.00355025723063155
+0.3702918298706757 0 0.003528068121286714
+0.4312313302059672 0 0.003594635449321261
+0.4109181634275632 0 0.003572446339976405
+0.471857663762841 0 0.003639013668010915
+0.4515444969844309 0 0.003616824558666088
+0.5124839973197126 0 0.003683391886700639
+0.4921708305412776 0 0.003661202777355777
+0.5531103308765775 0 0.003727770105390351
+0.5327971640981368 0 0.003705580996045495
+0.5937366644334598 0 0.003772148324080097
+0.5734234976550371 0 0.003749959214735224
+0.6343629979901619 0 0.003816526542769615
+0.6140498312118474 0 0.003794337433424856
+0.6749893315467898 0 0.003860904761459098
+0.6546761647684733 0 0.003838715652114357
+0.7156156651034226 0 0.00390528298014862
+0.6953024983251065 0 0.003883093870803859
+0.756241998660073 0 0.003949661198838054
+0.7359288318817373 0 0.003927472089493337
+0.7968683322166954 0 0.003994039417527491
+0.7765551654384 0 0.003971850308182773
+0.8374946657733322 0 0.004038417636216983
+0.8171814989950145 0 0.004016228526872237
+0.8781209993299623 0 0.004082795854906477
+0.8578078325516479 0 0.00406060674556173
+0.9187473328866339 0 0.004127174073595903
+0.8984341661082965 0 0.00410498496425119
+0.9593736664433485 0 0.004171552292285373
+0.9390604996649863 0 0.004149363182940638
+0.9796868332216682 0 0.004193741401630127
+$EndNodes
+$Elements
+19 934 1 934
+0 2 15 1
+1 1 
+0 3 15 1
+2 2 
+0 4 15 1
+3 3 
+0 5 15 1
+4 4 
+0 6 15 1
+5 5 
+0 9 15 1
+6 8 
+1 3 8 10
+7 5 60 69 
+8 60 61 70 
+9 61 62 71 
+10 62 63 72 
+11 63 64 73 
+12 64 65 74 
+13 65 66 75 
+14 66 67 76 
+15 67 68 77 
+16 68 6 78 
+1 4 8 10
+17 6 79 88 
+18 79 80 89 
+19 80 81 90 
+20 81 82 91 
+21 82 83 92 
+22 83 84 93 
+23 84 85 94 
+24 85 86 95 
+25 86 87 96 
+26 87 4 97 
+1 5 8 10
+27 4 98 107 
+28 98 99 108 
+29 99 100 109 
+30 100 101 110 
+31 101 102 111 
+32 102 103 112 
+33 103 104 113 
+34 104 105 114 
+35 105 106 115 
+36 106 10 116 
+1 6 8 19
+37 10 117 135 
+38 117 118 136 
+39 118 119 137 
+40 119 120 138 
+41 120 121 139 
+42 121 122 140 
+43 122 123 141 
+44 123 124 142 
+45 124 125 143 
+46 125 126 144 
+47 126 127 145 
+48 127 128 146 
+49 128 129 147 
+50 129 130 148 
+51 130 131 149 
+52 131 132 150 
+53 132 133 151 
+54 133 134 152 
+55 134 3 153 
+1 7 8 10
+56 3 154 163 
+57 154 155 164 
+58 155 156 165 
+59 156 157 166 
+60 157 158 167 
+61 158 159 168 
+62 159 160 169 
+63 160 161 170 
+64 161 162 171 
+65 162 11 172 
+1 8 8 15
+66 11 173 187 
+67 173 174 188 
+68 174 175 189 
+69 175 176 190 
+70 176 177 191 
+71 177 178 192 
+72 178 179 193 
+73 179 180 194 
+74 180 181 195 
+75 181 182 196 
+76 182 183 197 
+77 183 184 198 
+78 184 185 199 
+79 185 186 200 
+80 186 2 201 
+1 9 8 19
+81 2 202 220 
+82 202 203 221 
+83 203 204 222 
+84 204 205 223 
+85 205 206 224 
+86 206 207 225 
+87 207 208 226 
+88 208 209 227 
+89 209 210 228 
+90 210 211 229 
+91 211 212 230 
+92 212 213 231 
+93 213 214 232 
+94 214 215 233 
+95 215 216 234 
+96 216 217 235 
+97 217 218 236 
+98 218 219 237 
+99 219 7 238 
+1 10 8 10
+100 7 239 248 
+101 239 240 249 
+102 240 241 250 
+103 241 242 251 
+104 242 243 252 
+105 243 244 253 
+106 244 245 254 
+107 245 246 255 
+108 246 247 256 
+109 247 1 257 
+2 1 10 190
+110 10 117 381 303 135 543 544 313 545 
+111 303 381 382 302 544 546 547 312 548 
+112 302 382 383 301 547 549 550 311 551 
+113 301 383 384 300 550 552 553 310 554 
+114 300 384 385 299 553 555 556 309 557 
+115 299 385 386 298 556 558 559 308 560 
+116 298 386 387 297 559 561 562 307 563 
+117 297 387 388 296 562 564 565 306 566 
+118 296 388 389 295 565 567 568 305 569 
+119 295 389 275 9 568 570 294 304 571 
+120 117 118 390 381 136 572 573 543 574 
+121 381 390 391 382 573 575 576 546 577 
+122 382 391 392 383 576 578 579 549 580 
+123 383 392 393 384 579 581 582 552 583 
+124 384 393 394 385 582 584 585 555 586 
+125 385 394 395 386 585 587 588 558 589 
+126 386 395 396 387 588 590 591 561 592 
+127 387 396 397 388 591 593 594 564 595 
+128 388 397 398 389 594 596 597 567 598 
+129 389 398 274 275 597 599 293 570 600 
+130 118 119 399 390 137 601 602 572 603 
+131 390 399 400 391 602 604 605 575 606 
+132 391 400 401 392 605 607 608 578 609 
+133 392 401 402 393 608 610 611 581 612 
+134 393 402 403 394 611 613 614 584 615 
+135 394 403 404 395 614 616 617 587 618 
+136 395 404 405 396 617 619 620 590 621 
+137 396 405 406 397 620 622 623 593 624 
+138 397 406 407 398 623 625 626 596 627 
+139 398 407 273 274 626 628 292 599 629 
+140 119 120 408 399 138 630 631 601 632 
+141 399 408 409 400 631 633 634 604 635 
+142 400 409 410 401 634 636 637 607 638 
+143 401 410 411 402 637 639 640 610 641 
+144 402 411 412 403 640 642 643 613 644 
+145 403 412 413 404 643 645 646 616 647 
+146 404 413 414 405 646 648 649 619 650 
+147 405 414 415 406 649 651 652 622 653 
+148 406 415 416 407 652 654 655 625 656 
+149 407 416 272 273 655 657 291 628 658 
+150 120 121 417 408 139 659 660 630 661 
+151 408 417 418 409 660 662 663 633 664 
+152 409 418 419 410 663 665 666 636 667 
+153 410 419 420 411 666 668 669 639 670 
+154 411 420 421 412 669 671 672 642 673 
+155 412 421 422 413 672 674 675 645 676 
+156 413 422 423 414 675 677 678 648 679 
+157 414 423 424 415 678 680 681 651 682 
+158 415 424 425 416 681 683 684 654 685 
+159 416 425 271 272 684 686 290 657 687 
+160 121 122 426 417 140 688 689 659 690 
+161 417 426 427 418 689 691 692 662 693 
+162 418 427 428 419 692 694 695 665 696 
+163 419 428 429 420 695 697 698 668 699 
+164 420 429 430 421 698 700 701 671 702 
+165 421 430 431 422 701 703 704 674 705 
+166 422 431 432 423 704 706 707 677 708 
+167 423 432 433 424 707 709 710 680 711 
+168 424 433 434 425 710 712 713 683 714 
+169 425 434 270 271 713 715 289 686 716 
+170 122 123 435 426 141 717 718 688 719 
+171 426 435 436 427 718 720 721 691 722 
+172 427 436 437 428 721 723 724 694 725 
+173 428 437 438 429 724 726 727 697 728 
+174 429 438 439 430 727 729 730 700 731 
+175 430 439 440 431 730 732 733 703 734 
+176 431 440 441 432 733 735 736 706 737 
+177 432 441 442 433 736 738 739 709 740 
+178 433 442 443 434 739 741 742 712 743 
+179 434 443 269 270 742 744 288 715 745 
+180 123 124 444 435 142 746 747 717 748 
+181 435 444 445 436 747 749 750 720 751 
+182 436 445 446 437 750 752 753 723 754 
+183 437 446 447 438 753 755 756 726 757 
+184 438 447 448 439 756 758 759 729 760 
+185 439 448 449 440 759 761 762 732 763 
+186 440 449 450 441 762 764 765 735 766 
+187 441 450 451 442 765 767 768 738 769 
+188 442 451 452 443 768 770 771 741 772 
+189 443 452 268 269 771 773 287 744 774 
+190 124 125 453 444 143 775 776 746 777 
+191 444 453 454 445 776 778 779 749 780 
+192 445 454 455 446 779 781 782 752 783 
+193 446 455 456 447 782 784 785 755 786 
+194 447 456 457 448 785 787 788 758 789 
+195 448 457 458 449 788 790 791 761 792 
+196 449 458 459 450 791 793 794 764 795 
+197 450 459 460 451 794 796 797 767 798 
+198 451 460 461 452 797 799 800 770 801 
+199 452 461 267 268 800 802 286 773 803 
+200 125 126 462 453 144 804 805 775 806 
+201 453 462 463 454 805 807 808 778 809 
+202 454 463 464 455 808 810 811 781 812 
+203 455 464 465 456 811 813 814 784 815 
+204 456 465 466 457 814 816 817 787 818 
+205 457 466 467 458 817 819 820 790 821 
+206 458 467 468 459 820 822 823 793 824 
+207 459 468 469 460 823 825 826 796 827 
+208 460 469 470 461 826 828 829 799 830 
+209 461 470 266 267 829 831 285 802 832 
+210 126 127 471 462 145 833 834 804 835 
+211 462 471 472 463 834 836 837 807 838 
+212 463 472 473 464 837 839 840 810 841 
+213 464 473 474 465 840 842 843 813 844 
+214 465 474 475 466 843 845 846 816 847 
+215 466 475 476 467 846 848 849 819 850 
+216 467 476 477 468 849 851 852 822 853 
+217 468 477 478 469 852 854 855 825 856 
+218 469 478 479 470 855 857 858 828 859 
+219 470 479 265 266 858 860 284 831 861 
+220 127 128 480 471 146 862 863 833 864 
+221 471 480 481 472 863 865 866 836 867 
+222 472 481 482 473 866 868 869 839 870 
+223 473 482 483 474 869 871 872 842 873 
+224 474 483 484 475 872 874 875 845 876 
+225 475 484 485 476 875 877 878 848 879 
+226 476 485 486 477 878 880 881 851 882 
+227 477 486 487 478 881 883 884 854 885 
+228 478 487 488 479 884 886 887 857 888 
+229 479 488 264 265 887 889 283 860 890 
+230 128 129 489 480 147 891 892 862 893 
+231 480 489 490 481 892 894 895 865 896 
+232 481 490 491 482 895 897 898 868 899 
+233 482 491 492 483 898 900 901 871 902 
+234 483 492 493 484 901 903 904 874 905 
+235 484 493 494 485 904 906 907 877 908 
+236 485 494 495 486 907 909 910 880 911 
+237 486 495 496 487 910 912 913 883 914 
+238 487 496 497 488 913 915 916 886 917 
+239 488 497 263 264 916 918 282 889 919 
+240 129 130 498 489 148 920 921 891 922 
+241 489 498 499 490 921 923 924 894 925 
+242 490 499 500 491 924 926 927 897 928 
+243 491 500 501 492 927 929 930 900 931 
+244 492 501 502 493 930 932 933 903 934 
+245 493 502 503 494 933 935 936 906 937 
+246 494 503 504 495 936 938 939 909 940 
+247 495 504 505 496 939 941 942 912 943 
+248 496 505 506 497 942 944 945 915 946 
+249 497 506 262 263 945 947 281 918 948 
+250 130 131 507 498 149 949 950 920 951 
+251 498 507 508 499 950 952 953 923 954 
+252 499 508 509 500 953 955 956 926 957 
+253 500 509 510 501 956 958 959 929 960 
+254 501 510 511 502 959 961 962 932 963 
+255 502 511 512 503 962 964 965 935 966 
+256 503 512 513 504 965 967 968 938 969 
+257 504 513 514 505 968 970 971 941 972 
+258 505 514 515 506 971 973 974 944 975 
+259 506 515 261 262 974 976 280 947 977 
+260 131 132 516 507 150 978 979 949 980 
+261 507 516 517 508 979 981 982 952 983 
+262 508 517 518 509 982 984 985 955 986 
+263 509 518 519 510 985 987 988 958 989 
+264 510 519 520 511 988 990 991 961 992 
+265 511 520 521 512 991 993 994 964 995 
+266 512 521 522 513 994 996 997 967 998 
+267 513 522 523 514 997 999 1000 970 1001 
+268 514 523 524 515 1000 1002 1003 973 1004 
+269 515 524 260 261 1003 1005 279 976 1006 
+270 132 133 525 516 151 1007 1008 978 1009 
+271 516 525 526 517 1008 1010 1011 981 1012 
+272 517 526 527 518 1011 1013 1014 984 1015 
+273 518 527 528 519 1014 1016 1017 987 1018 
+274 519 528 529 520 1017 1019 1020 990 1021 
+275 520 529 530 521 1020 1022 1023 993 1024 
+276 521 530 531 522 1023 1025 1026 996 1027 
+277 522 531 532 523 1026 1028 1029 999 1030 
+278 523 532 533 524 1029 1031 1032 1002 1033 
+279 524 533 259 260 1032 1034 278 1005 1035 
+280 133 134 534 525 152 1036 1037 1007 1038 
+281 525 534 535 526 1037 1039 1040 1010 1041 
+282 526 535 536 527 1040 1042 1043 1013 1044 
+283 527 536 537 528 1043 1045 1046 1016 1047 
+284 528 537 538 529 1046 1048 1049 1019 1050 
+285 529 538 539 530 1049 1051 1052 1022 1053 
+286 530 539 540 531 1052 1054 1055 1025 1056 
+287 531 540 541 532 1055 1057 1058 1028 1059 
+288 532 541 542 533 1058 1060 1061 1031 1062 
+289 533 542 258 259 1061 1063 277 1034 1064 
+290 134 3 154 534 153 163 1065 1036 1066 
+291 534 154 155 535 1065 164 1067 1039 1068 
+292 535 155 156 536 1067 165 1069 1042 1070 
+293 536 156 157 537 1069 166 1071 1045 1072 
+294 537 157 158 538 1071 167 1073 1048 1074 
+295 538 158 159 539 1073 168 1075 1051 1076 
+296 539 159 160 540 1075 169 1077 1054 1078 
+297 540 160 161 541 1077 170 1079 1057 1080 
+298 541 161 162 542 1079 171 1081 1060 1082 
+299 542 162 11 258 1081 172 276 1063 1083 
+2 2 10 100
+300 9 295 1084 314 304 1165 1166 323 1167 
+301 314 1084 1085 315 1166 1168 1169 324 1170 
+302 315 1085 1086 316 1169 1171 1172 325 1173 
+303 316 1086 1087 317 1172 1174 1175 326 1176 
+304 317 1087 1088 318 1175 1177 1178 327 1179 
+305 318 1088 1089 319 1178 1180 1181 328 1182 
+306 319 1089 1090 320 1181 1183 1184 329 1185 
+307 320 1090 1091 321 1184 1186 1187 330 1188 
+308 321 1091 1092 322 1187 1189 1190 331 1191 
+309 322 1092 79 6 1190 1192 88 332 1193 
+310 295 296 1093 1084 305 1194 1195 1165 1196 
+311 1084 1093 1094 1085 1195 1197 1198 1168 1199 
+312 1085 1094 1095 1086 1198 1200 1201 1171 1202 
+313 1086 1095 1096 1087 1201 1203 1204 1174 1205 
+314 1087 1096 1097 1088 1204 1206 1207 1177 1208 
+315 1088 1097 1098 1089 1207 1209 1210 1180 1211 
+316 1089 1098 1099 1090 1210 1212 1213 1183 1214 
+317 1090 1099 1100 1091 1213 1215 1216 1186 1217 
+318 1091 1100 1101 1092 1216 1218 1219 1189 1220 
+319 1092 1101 80 79 1219 1221 89 1192 1222 
+320 296 297 1102 1093 306 1223 1224 1194 1225 
+321 1093 1102 1103 1094 1224 1226 1227 1197 1228 
+322 1094 1103 1104 1095 1227 1229 1230 1200 1231 
+323 1095 1104 1105 1096 1230 1232 1233 1203 1234 
+324 1096 1105 1106 1097 1233 1235 1236 1206 1237 
+325 1097 1106 1107 1098 1236 1238 1239 1209 1240 
+326 1098 1107 1108 1099 1239 1241 1242 1212 1243 
+327 1099 1108 1109 1100 1242 1244 1245 1215 1246 
+328 1100 1109 1110 1101 1245 1247 1248 1218 1249 
+329 1101 1110 81 80 1248 1250 90 1221 1251 
+330 297 298 1111 1102 307 1252 1253 1223 1254 
+331 1102 1111 1112 1103 1253 1255 1256 1226 1257 
+332 1103 1112 1113 1104 1256 1258 1259 1229 1260 
+333 1104 1113 1114 1105 1259 1261 1262 1232 1263 
+334 1105 1114 1115 1106 1262 1264 1265 1235 1266 
+335 1106 1115 1116 1107 1265 1267 1268 1238 1269 
+336 1107 1116 1117 1108 1268 1270 1271 1241 1272 
+337 1108 1117 1118 1109 1271 1273 1274 1244 1275 
+338 1109 1118 1119 1110 1274 1276 1277 1247 1278 
+339 1110 1119 82 81 1277 1279 91 1250 1280 
+340 298 299 1120 1111 308 1281 1282 1252 1283 
+341 1111 1120 1121 1112 1282 1284 1285 1255 1286 
+342 1112 1121 1122 1113 1285 1287 1288 1258 1289 
+343 1113 1122 1123 1114 1288 1290 1291 1261 1292 
+344 1114 1123 1124 1115 1291 1293 1294 1264 1295 
+345 1115 1124 1125 1116 1294 1296 1297 1267 1298 
+346 1116 1125 1126 1117 1297 1299 1300 1270 1301 
+347 1117 1126 1127 1118 1300 1302 1303 1273 1304 
+348 1118 1127 1128 1119 1303 1305 1306 1276 1307 
+349 1119 1128 83 82 1306 1308 92 1279 1309 
+350 299 300 1129 1120 309 1310 1311 1281 1312 
+351 1120 1129 1130 1121 1311 1313 1314 1284 1315 
+352 1121 1130 1131 1122 1314 1316 1317 1287 1318 
+353 1122 1131 1132 1123 1317 1319 1320 1290 1321 
+354 1123 1132 1133 1124 1320 1322 1323 1293 1324 
+355 1124 1133 1134 1125 1323 1325 1326 1296 1327 
+356 1125 1134 1135 1126 1326 1328 1329 1299 1330 
+357 1126 1135 1136 1127 1329 1331 1332 1302 1333 
+358 1127 1136 1137 1128 1332 1334 1335 1305 1336 
+359 1128 1137 84 83 1335 1337 93 1308 1338 
+360 300 301 1138 1129 310 1339 1340 1310 1341 
+361 1129 1138 1139 1130 1340 1342 1343 1313 1344 
+362 1130 1139 1140 1131 1343 1345 1346 1316 1347 
+363 1131 1140 1141 1132 1346 1348 1349 1319 1350 
+364 1132 1141 1142 1133 1349 1351 1352 1322 1353 
+365 1133 1142 1143 1134 1352 1354 1355 1325 1356 
+366 1134 1143 1144 1135 1355 1357 1358 1328 1359 
+367 1135 1144 1145 1136 1358 1360 1361 1331 1362 
+368 1136 1145 1146 1137 1361 1363 1364 1334 1365 
+369 1137 1146 85 84 1364 1366 94 1337 1367 
+370 301 302 1147 1138 311 1368 1369 1339 1370 
+371 1138 1147 1148 1139 1369 1371 1372 1342 1373 
+372 1139 1148 1149 1140 1372 1374 1375 1345 1376 
+373 1140 1149 1150 1141 1375 1377 1378 1348 1379 
+374 1141 1150 1151 1142 1378 1380 1381 1351 1382 
+375 1142 1151 1152 1143 1381 1383 1384 1354 1385 
+376 1143 1152 1153 1144 1384 1386 1387 1357 1388 
+377 1144 1153 1154 1145 1387 1389 1390 1360 1391 
+378 1145 1154 1155 1146 1390 1392 1393 1363 1394 
+379 1146 1155 86 85 1393 1395 95 1366 1396 
+380 302 303 1156 1147 312 1397 1398 1368 1399 
+381 1147 1156 1157 1148 1398 1400 1401 1371 1402 
+382 1148 1157 1158 1149 1401 1403 1404 1374 1405 
+383 1149 1158 1159 1150 1404 1406 1407 1377 1408 
+384 1150 1159 1160 1151 1407 1409 1410 1380 1411 
+385 1151 1160 1161 1152 1410 1412 1413 1383 1414 
+386 1152 1161 1162 1153 1413 1415 1416 1386 1417 
+387 1153 1162 1163 1154 1416 1418 1419 1389 1420 
+388 1154 1163 1164 1155 1419 1421 1422 1392 1423 
+389 1155 1164 87 86 1422 1424 96 1395 1425 
+390 303 10 106 1156 313 116 1426 1397 1427 
+391 1156 106 105 1157 1426 115 1428 1400 1429 
+392 1157 105 104 1158 1428 114 1430 1403 1431 
+393 1158 104 103 1159 1430 113 1432 1406 1433 
+394 1159 103 102 1160 1432 112 1434 1409 1435 
+395 1160 102 101 1161 1434 111 1436 1412 1437 
+396 1161 101 100 1162 1436 110 1438 1415 1439 
+397 1162 100 99 1163 1438 109 1440 1418 1441 
+398 1163 99 98 1164 1440 108 1442 1421 1443 
+399 1164 98 4 87 1442 107 97 1424 1444 
+2 3 10 100
+400 5 60 1445 49 69 1526 1527 59 1528 
+401 49 1445 1446 48 1527 1529 1530 58 1531 
+402 48 1446 1447 47 1530 1532 1533 57 1534 
+403 47 1447 1448 46 1533 1535 1536 56 1537 
+404 46 1448 1449 45 1536 1538 1539 55 1540 
+405 45 1449 1450 44 1539 1541 1542 54 1543 
+406 44 1450 1451 43 1542 1544 1545 53 1546 
+407 43 1451 1452 42 1545 1547 1548 52 1549 
+408 42 1452 1453 41 1548 1550 1551 51 1552 
+409 41 1453 341 8 1551 1553 351 50 1554 
+410 60 61 1454 1445 70 1555 1556 1526 1557 
+411 1445 1454 1455 1446 1556 1558 1559 1529 1560 
+412 1446 1455 1456 1447 1559 1561 1562 1532 1563 
+413 1447 1456 1457 1448 1562 1564 1565 1535 1566 
+414 1448 1457 1458 1449 1565 1567 1568 1538 1569 
+415 1449 1458 1459 1450 1568 1570 1571 1541 1572 
+416 1450 1459 1460 1451 1571 1573 1574 1544 1575 
+417 1451 1460 1461 1452 1574 1576 1577 1547 1578 
+418 1452 1461 1462 1453 1577 1579 1580 1550 1581 
+419 1453 1462 340 341 1580 1582 350 1553 1583 
+420 61 62 1463 1454 71 1584 1585 1555 1586 
+421 1454 1463 1464 1455 1585 1587 1588 1558 1589 
+422 1455 1464 1465 1456 1588 1590 1591 1561 1592 
+423 1456 1465 1466 1457 1591 1593 1594 1564 1595 
+424 1457 1466 1467 1458 1594 1596 1597 1567 1598 
+425 1458 1467 1468 1459 1597 1599 1600 1570 1601 
+426 1459 1468 1469 1460 1600 1602 1603 1573 1604 
+427 1460 1469 1470 1461 1603 1605 1606 1576 1607 
+428 1461 1470 1471 1462 1606 1608 1609 1579 1610 
+429 1462 1471 339 340 1609 1611 349 1582 1612 
+430 62 63 1472 1463 72 1613 1614 1584 1615 
+431 1463 1472 1473 1464 1614 1616 1617 1587 1618 
+432 1464 1473 1474 1465 1617 1619 1620 1590 1621 
+433 1465 1474 1475 1466 1620 1622 1623 1593 1624 
+434 1466 1475 1476 1467 1623 1625 1626 1596 1627 
+435 1467 1476 1477 1468 1626 1628 1629 1599 1630 
+436 1468 1477 1478 1469 1629 1631 1632 1602 1633 
+437 1469 1478 1479 1470 1632 1634 1635 1605 1636 
+438 1470 1479 1480 1471 1635 1637 1638 1608 1639 
+439 1471 1480 338 339 1638 1640 348 1611 1641 
+440 63 64 1481 1472 73 1642 1643 1613 1644 
+441 1472 1481 1482 1473 1643 1645 1646 1616 1647 
+442 1473 1482 1483 1474 1646 1648 1649 1619 1650 
+443 1474 1483 1484 1475 1649 1651 1652 1622 1653 
+444 1475 1484 1485 1476 1652 1654 1655 1625 1656 
+445 1476 1485 1486 1477 1655 1657 1658 1628 1659 
+446 1477 1486 1487 1478 1658 1660 1661 1631 1662 
+447 1478 1487 1488 1479 1661 1663 1664 1634 1665 
+448 1479 1488 1489 1480 1664 1666 1667 1637 1668 
+449 1480 1489 337 338 1667 1669 347 1640 1670 
+450 64 65 1490 1481 74 1671 1672 1642 1673 
+451 1481 1490 1491 1482 1672 1674 1675 1645 1676 
+452 1482 1491 1492 1483 1675 1677 1678 1648 1679 
+453 1483 1492 1493 1484 1678 1680 1681 1651 1682 
+454 1484 1493 1494 1485 1681 1683 1684 1654 1685 
+455 1485 1494 1495 1486 1684 1686 1687 1657 1688 
+456 1486 1495 1496 1487 1687 1689 1690 1660 1691 
+457 1487 1496 1497 1488 1690 1692 1693 1663 1694 
+458 1488 1497 1498 1489 1693 1695 1696 1666 1697 
+459 1489 1498 336 337 1696 1698 346 1669 1699 
+460 65 66 1499 1490 75 1700 1701 1671 1702 
+461 1490 1499 1500 1491 1701 1703 1704 1674 1705 
+462 1491 1500 1501 1492 1704 1706 1707 1677 1708 
+463 1492 1501 1502 1493 1707 1709 1710 1680 1711 
+464 1493 1502 1503 1494 1710 1712 1713 1683 1714 
+465 1494 1503 1504 1495 1713 1715 1716 1686 1717 
+466 1495 1504 1505 1496 1716 1718 1719 1689 1720 
+467 1496 1505 1506 1497 1719 1721 1722 1692 1723 
+468 1497 1506 1507 1498 1722 1724 1725 1695 1726 
+469 1498 1507 335 336 1725 1727 345 1698 1728 
+470 66 67 1508 1499 76 1729 1730 1700 1731 
+471 1499 1508 1509 1500 1730 1732 1733 1703 1734 
+472 1500 1509 1510 1501 1733 1735 1736 1706 1737 
+473 1501 1510 1511 1502 1736 1738 1739 1709 1740 
+474 1502 1511 1512 1503 1739 1741 1742 1712 1743 
+475 1503 1512 1513 1504 1742 1744 1745 1715 1746 
+476 1504 1513 1514 1505 1745 1747 1748 1718 1749 
+477 1505 1514 1515 1506 1748 1750 1751 1721 1752 
+478 1506 1515 1516 1507 1751 1753 1754 1724 1755 
+479 1507 1516 334 335 1754 1756 344 1727 1757 
+480 67 68 1517 1508 77 1758 1759 1729 1760 
+481 1508 1517 1518 1509 1759 1761 1762 1732 1763 
+482 1509 1518 1519 1510 1762 1764 1765 1735 1766 
+483 1510 1519 1520 1511 1765 1767 1768 1738 1769 
+484 1511 1520 1521 1512 1768 1770 1771 1741 1772 
+485 1512 1521 1522 1513 1771 1773 1774 1744 1775 
+486 1513 1522 1523 1514 1774 1776 1777 1747 1778 
+487 1514 1523 1524 1515 1777 1779 1780 1750 1781 
+488 1515 1524 1525 1516 1780 1782 1783 1753 1784 
+489 1516 1525 333 334 1783 1785 343 1756 1786 
+490 68 6 322 1517 78 332 1787 1758 1788 
+491 1517 322 321 1518 1787 331 1789 1761 1790 
+492 1518 321 320 1519 1789 330 1791 1764 1792 
+493 1519 320 319 1520 1791 329 1793 1767 1794 
+494 1520 319 318 1521 1793 328 1795 1770 1796 
+495 1521 318 317 1522 1795 327 1797 1773 1798 
+496 1522 317 316 1523 1797 326 1799 1776 1800 
+497 1523 316 315 1524 1799 325 1801 1779 1802 
+498 1524 315 314 1525 1801 324 1803 1782 1804 
+499 1525 314 9 333 1803 323 342 1785 1805 
+2 4 10 150
+500 7 239 1806 365 248 1932 1933 380 1934 
+501 365 1806 1807 364 1933 1935 1936 379 1937 
+502 364 1807 1808 363 1936 1938 1939 378 1940 
+503 363 1808 1809 362 1939 1941 1942 377 1943 
+504 362 1809 1810 361 1942 1944 1945 376 1946 
+505 361 1810 1811 360 1945 1947 1948 375 1949 
+506 360 1811 1812 359 1948 1950 1951 374 1952 
+507 359 1812 1813 358 1951 1953 1954 373 1955 
+508 358 1813 1814 357 1954 1956 1957 372 1958 
+509 357 1814 1815 356 1957 1959 1960 371 1961 
+510 356 1815 1816 355 1960 1962 1963 370 1964 
+511 355 1816 1817 354 1963 1965 1966 369 1967 
+512 354 1817 1818 353 1966 1968 1969 368 1970 
+513 353 1818 1819 352 1969 1971 1972 367 1973 
+514 352 1819 333 9 1972 1974 342 366 1975 
+515 239 240 1820 1806 249 1976 1977 1932 1978 
+516 1806 1820 1821 1807 1977 1979 1980 1935 1981 
+517 1807 1821 1822 1808 1980 1982 1983 1938 1984 
+518 1808 1822 1823 1809 1983 1985 1986 1941 1987 
+519 1809 1823 1824 1810 1986 1988 1989 1944 1990 
+520 1810 1824 1825 1811 1989 1991 1992 1947 1993 
+521 1811 1825 1826 1812 1992 1994 1995 1950 1996 
+522 1812 1826 1827 1813 1995 1997 1998 1953 1999 
+523 1813 1827 1828 1814 1998 2000 2001 1956 2002 
+524 1814 1828 1829 1815 2001 2003 2004 1959 2005 
+525 1815 1829 1830 1816 2004 2006 2007 1962 2008 
+526 1816 1830 1831 1817 2007 2009 2010 1965 2011 
+527 1817 1831 1832 1818 2010 2012 2013 1968 2014 
+528 1818 1832 1833 1819 2013 2015 2016 1971 2017 
+529 1819 1833 334 333 2016 2018 343 1974 2019 
+530 240 241 1834 1820 250 2020 2021 1976 2022 
+531 1820 1834 1835 1821 2021 2023 2024 1979 2025 
+532 1821 1835 1836 1822 2024 2026 2027 1982 2028 
+533 1822 1836 1837 1823 2027 2029 2030 1985 2031 
+534 1823 1837 1838 1824 2030 2032 2033 1988 2034 
+535 1824 1838 1839 1825 2033 2035 2036 1991 2037 
+536 1825 1839 1840 1826 2036 2038 2039 1994 2040 
+537 1826 1840 1841 1827 2039 2041 2042 1997 2043 
+538 1827 1841 1842 1828 2042 2044 2045 2000 2046 
+539 1828 1842 1843 1829 2045 2047 2048 2003 2049 
+540 1829 1843 1844 1830 2048 2050 2051 2006 2052 
+541 1830 1844 1845 1831 2051 2053 2054 2009 2055 
+542 1831 1845 1846 1832 2054 2056 2057 2012 2058 
+543 1832 1846 1847 1833 2057 2059 2060 2015 2061 
+544 1833 1847 335 334 2060 2062 344 2018 2063 
+545 241 242 1848 1834 251 2064 2065 2020 2066 
+546 1834 1848 1849 1835 2065 2067 2068 2023 2069 
+547 1835 1849 1850 1836 2068 2070 2071 2026 2072 
+548 1836 1850 1851 1837 2071 2073 2074 2029 2075 
+549 1837 1851 1852 1838 2074 2076 2077 2032 2078 
+550 1838 1852 1853 1839 2077 2079 2080 2035 2081 
+551 1839 1853 1854 1840 2080 2082 2083 2038 2084 
+552 1840 1854 1855 1841 2083 2085 2086 2041 2087 
+553 1841 1855 1856 1842 2086 2088 2089 2044 2090 
+554 1842 1856 1857 1843 2089 2091 2092 2047 2093 
+555 1843 1857 1858 1844 2092 2094 2095 2050 2096 
+556 1844 1858 1859 1845 2095 2097 2098 2053 2099 
+557 1845 1859 1860 1846 2098 2100 2101 2056 2102 
+558 1846 1860 1861 1847 2101 2103 2104 2059 2105 
+559 1847 1861 336 335 2104 2106 345 2062 2107 
+560 242 243 1862 1848 252 2108 2109 2064 2110 
+561 1848 1862 1863 1849 2109 2111 2112 2067 2113 
+562 1849 1863 1864 1850 2112 2114 2115 2070 2116 
+563 1850 1864 1865 1851 2115 2117 2118 2073 2119 
+564 1851 1865 1866 1852 2118 2120 2121 2076 2122 
+565 1852 1866 1867 1853 2121 2123 2124 2079 2125 
+566 1853 1867 1868 1854 2124 2126 2127 2082 2128 
+567 1854 1868 1869 1855 2127 2129 2130 2085 2131 
+568 1855 1869 1870 1856 2130 2132 2133 2088 2134 
+569 1856 1870 1871 1857 2133 2135 2136 2091 2137 
+570 1857 1871 1872 1858 2136 2138 2139 2094 2140 
+571 1858 1872 1873 1859 2139 2141 2142 2097 2143 
+572 1859 1873 1874 1860 2142 2144 2145 2100 2146 
+573 1860 1874 1875 1861 2145 2147 2148 2103 2149 
+574 1861 1875 337 336 2148 2150 346 2106 2151 
+575 243 244 1876 1862 253 2152 2153 2108 2154 
+576 1862 1876 1877 1863 2153 2155 2156 2111 2157 
+577 1863 1877 1878 1864 2156 2158 2159 2114 2160 
+578 1864 1878 1879 1865 2159 2161 2162 2117 2163 
+579 1865 1879 1880 1866 2162 2164 2165 2120 2166 
+580 1866 1880 1881 1867 2165 2167 2168 2123 2169 
+581 1867 1881 1882 1868 2168 2170 2171 2126 2172 
+582 1868 1882 1883 1869 2171 2173 2174 2129 2175 
+583 1869 1883 1884 1870 2174 2176 2177 2132 2178 
+584 1870 1884 1885 1871 2177 2179 2180 2135 2181 
+585 1871 1885 1886 1872 2180 2182 2183 2138 2184 
+586 1872 1886 1887 1873 2183 2185 2186 2141 2187 
+587 1873 1887 1888 1874 2186 2188 2189 2144 2190 
+588 1874 1888 1889 1875 2189 2191 2192 2147 2193 
+589 1875 1889 338 337 2192 2194 347 2150 2195 
+590 244 245 1890 1876 254 2196 2197 2152 2198 
+591 1876 1890 1891 1877 2197 2199 2200 2155 2201 
+592 1877 1891 1892 1878 2200 2202 2203 2158 2204 
+593 1878 1892 1893 1879 2203 2205 2206 2161 2207 
+594 1879 1893 1894 1880 2206 2208 2209 2164 2210 
+595 1880 1894 1895 1881 2209 2211 2212 2167 2213 
+596 1881 1895 1896 1882 2212 2214 2215 2170 2216 
+597 1882 1896 1897 1883 2215 2217 2218 2173 2219 
+598 1883 1897 1898 1884 2218 2220 2221 2176 2222 
+599 1884 1898 1899 1885 2221 2223 2224 2179 2225 
+600 1885 1899 1900 1886 2224 2226 2227 2182 2228 
+601 1886 1900 1901 1887 2227 2229 2230 2185 2231 
+602 1887 1901 1902 1888 2230 2232 2233 2188 2234 
+603 1888 1902 1903 1889 2233 2235 2236 2191 2237 
+604 1889 1903 339 338 2236 2238 348 2194 2239 
+605 245 246 1904 1890 255 2240 2241 2196 2242 
+606 1890 1904 1905 1891 2241 2243 2244 2199 2245 
+607 1891 1905 1906 1892 2244 2246 2247 2202 2248 
+608 1892 1906 1907 1893 2247 2249 2250 2205 2251 
+609 1893 1907 1908 1894 2250 2252 2253 2208 2254 
+610 1894 1908 1909 1895 2253 2255 2256 2211 2257 
+611 1895 1909 1910 1896 2256 2258 2259 2214 2260 
+612 1896 1910 1911 1897 2259 2261 2262 2217 2263 
+613 1897 1911 1912 1898 2262 2264 2265 2220 2266 
+614 1898 1912 1913 1899 2265 2267 2268 2223 2269 
+615 1899 1913 1914 1900 2268 2270 2271 2226 2272 
+616 1900 1914 1915 1901 2271 2273 2274 2229 2275 
+617 1901 1915 1916 1902 2274 2276 2277 2232 2278 
+618 1902 1916 1917 1903 2277 2279 2280 2235 2281 
+619 1903 1917 340 339 2280 2282 349 2238 2283 
+620 246 247 1918 1904 256 2284 2285 2240 2286 
+621 1904 1918 1919 1905 2285 2287 2288 2243 2289 
+622 1905 1919 1920 1906 2288 2290 2291 2246 2292 
+623 1906 1920 1921 1907 2291 2293 2294 2249 2295 
+624 1907 1921 1922 1908 2294 2296 2297 2252 2298 
+625 1908 1922 1923 1909 2297 2299 2300 2255 2301 
+626 1909 1923 1924 1910 2300 2302 2303 2258 2304 
+627 1910 1924 1925 1911 2303 2305 2306 2261 2307 
+628 1911 1925 1926 1912 2306 2308 2309 2264 2310 
+629 1912 1926 1927 1913 2309 2311 2312 2267 2313 
+630 1913 1927 1928 1914 2312 2314 2315 2270 2316 
+631 1914 1928 1929 1915 2315 2317 2318 2273 2319 
+632 1915 1929 1930 1916 2318 2320 2321 2276 2322 
+633 1916 1930 1931 1917 2321 2323 2324 2279 2325 
+634 1917 1931 341 340 2324 2326 350 2282 2327 
+635 247 1 12 1918 257 26 2328 2284 2329 
+636 1918 12 13 1919 2328 27 2330 2287 2331 
+637 1919 13 14 1920 2330 28 2332 2290 2333 
+638 1920 14 15 1921 2332 29 2334 2293 2335 
+639 1921 15 16 1922 2334 30 2336 2296 2337 
+640 1922 16 17 1923 2336 31 2338 2299 2339 
+641 1923 17 18 1924 2338 32 2340 2302 2341 
+642 1924 18 19 1925 2340 33 2342 2305 2343 
+643 1925 19 20 1926 2342 34 2344 2308 2345 
+644 1926 20 21 1927 2344 35 2346 2311 2347 
+645 1927 21 22 1928 2346 36 2348 2314 2349 
+646 1928 22 23 1929 2348 37 2350 2317 2351 
+647 1929 23 24 1930 2350 38 2352 2320 2353 
+648 1930 24 25 1931 2352 39 2354 2323 2355 
+649 1931 25 8 341 2354 40 351 2326 2356 
+2 5 10 285
+650 9 352 2357 275 366 2609 2610 294 2611 
+651 275 2357 2358 274 2610 2612 2613 293 2614 
+652 274 2358 2359 273 2613 2615 2616 292 2617 
+653 273 2359 2360 272 2616 2618 2619 291 2620 
+654 272 2360 2361 271 2619 2621 2622 290 2623 
+655 271 2361 2362 270 2622 2624 2625 289 2626 
+656 270 2362 2363 269 2625 2627 2628 288 2629 
+657 269 2363 2364 268 2628 2630 2631 287 2632 
+658 268 2364 2365 267 2631 2633 2634 286 2635 
+659 267 2365 2366 266 2634 2636 2637 285 2638 
+660 266 2366 2367 265 2637 2639 2640 284 2641 
+661 265 2367 2368 264 2640 2642 2643 283 2644 
+662 264 2368 2369 263 2643 2645 2646 282 2647 
+663 263 2369 2370 262 2646 2648 2649 281 2650 
+664 262 2370 2371 261 2649 2651 2652 280 2653 
+665 261 2371 2372 260 2652 2654 2655 279 2656 
+666 260 2372 2373 259 2655 2657 2658 278 2659 
+667 259 2373 2374 258 2658 2660 2661 277 2662 
+668 258 2374 173 11 2661 2663 187 276 2664 
+669 352 353 2375 2357 367 2665 2666 2609 2667 
+670 2357 2375 2376 2358 2666 2668 2669 2612 2670 
+671 2358 2376 2377 2359 2669 2671 2672 2615 2673 
+672 2359 2377 2378 2360 2672 2674 2675 2618 2676 
+673 2360 2378 2379 2361 2675 2677 2678 2621 2679 
+674 2361 2379 2380 2362 2678 2680 2681 2624 2682 
+675 2362 2380 2381 2363 2681 2683 2684 2627 2685 
+676 2363 2381 2382 2364 2684 2686 2687 2630 2688 
+677 2364 2382 2383 2365 2687 2689 2690 2633 2691 
+678 2365 2383 2384 2366 2690 2692 2693 2636 2694 
+679 2366 2384 2385 2367 2693 2695 2696 2639 2697 
+680 2367 2385 2386 2368 2696 2698 2699 2642 2700 
+681 2368 2386 2387 2369 2699 2701 2702 2645 2703 
+682 2369 2387 2388 2370 2702 2704 2705 2648 2706 
+683 2370 2388 2389 2371 2705 2707 2708 2651 2709 
+684 2371 2389 2390 2372 2708 2710 2711 2654 2712 
+685 2372 2390 2391 2373 2711 2713 2714 2657 2715 
+686 2373 2391 2392 2374 2714 2716 2717 2660 2718 
+687 2374 2392 174 173 2717 2719 188 2663 2720 
+688 353 354 2393 2375 368 2721 2722 2665 2723 
+689 2375 2393 2394 2376 2722 2724 2725 2668 2726 
+690 2376 2394 2395 2377 2725 2727 2728 2671 2729 
+691 2377 2395 2396 2378 2728 2730 2731 2674 2732 
+692 2378 2396 2397 2379 2731 2733 2734 2677 2735 
+693 2379 2397 2398 2380 2734 2736 2737 2680 2738 
+694 2380 2398 2399 2381 2737 2739 2740 2683 2741 
+695 2381 2399 2400 2382 2740 2742 2743 2686 2744 
+696 2382 2400 2401 2383 2743 2745 2746 2689 2747 
+697 2383 2401 2402 2384 2746 2748 2749 2692 2750 
+698 2384 2402 2403 2385 2749 2751 2752 2695 2753 
+699 2385 2403 2404 2386 2752 2754 2755 2698 2756 
+700 2386 2404 2405 2387 2755 2757 2758 2701 2759 
+701 2387 2405 2406 2388 2758 2760 2761 2704 2762 
+702 2388 2406 2407 2389 2761 2763 2764 2707 2765 
+703 2389 2407 2408 2390 2764 2766 2767 2710 2768 
+704 2390 2408 2409 2391 2767 2769 2770 2713 2771 
+705 2391 2409 2410 2392 2770 2772 2773 2716 2774 
+706 2392 2410 175 174 2773 2775 189 2719 2776 
+707 354 355 2411 2393 369 2777 2778 2721 2779 
+708 2393 2411 2412 2394 2778 2780 2781 2724 2782 
+709 2394 2412 2413 2395 2781 2783 2784 2727 2785 
+710 2395 2413 2414 2396 2784 2786 2787 2730 2788 
+711 2396 2414 2415 2397 2787 2789 2790 2733 2791 
+712 2397 2415 2416 2398 2790 2792 2793 2736 2794 
+713 2398 2416 2417 2399 2793 2795 2796 2739 2797 
+714 2399 2417 2418 2400 2796 2798 2799 2742 2800 
+715 2400 2418 2419 2401 2799 2801 2802 2745 2803 
+716 2401 2419 2420 2402 2802 2804 2805 2748 2806 
+717 2402 2420 2421 2403 2805 2807 2808 2751 2809 
+718 2403 2421 2422 2404 2808 2810 2811 2754 2812 
+719 2404 2422 2423 2405 2811 2813 2814 2757 2815 
+720 2405 2423 2424 2406 2814 2816 2817 2760 2818 
+721 2406 2424 2425 2407 2817 2819 2820 2763 2821 
+722 2407 2425 2426 2408 2820 2822 2823 2766 2824 
+723 2408 2426 2427 2409 2823 2825 2826 2769 2827 
+724 2409 2427 2428 2410 2826 2828 2829 2772 2830 
+725 2410 2428 176 175 2829 2831 190 2775 2832 
+726 355 356 2429 2411 370 2833 2834 2777 2835 
+727 2411 2429 2430 2412 2834 2836 2837 2780 2838 
+728 2412 2430 2431 2413 2837 2839 2840 2783 2841 
+729 2413 2431 2432 2414 2840 2842 2843 2786 2844 
+730 2414 2432 2433 2415 2843 2845 2846 2789 2847 
+731 2415 2433 2434 2416 2846 2848 2849 2792 2850 
+732 2416 2434 2435 2417 2849 2851 2852 2795 2853 
+733 2417 2435 2436 2418 2852 2854 2855 2798 2856 
+734 2418 2436 2437 2419 2855 2857 2858 2801 2859 
+735 2419 2437 2438 2420 2858 2860 2861 2804 2862 
+736 2420 2438 2439 2421 2861 2863 2864 2807 2865 
+737 2421 2439 2440 2422 2864 2866 2867 2810 2868 
+738 2422 2440 2441 2423 2867 2869 2870 2813 2871 
+739 2423 2441 2442 2424 2870 2872 2873 2816 2874 
+740 2424 2442 2443 2425 2873 2875 2876 2819 2877 
+741 2425 2443 2444 2426 2876 2878 2879 2822 2880 
+742 2426 2444 2445 2427 2879 2881 2882 2825 2883 
+743 2427 2445 2446 2428 2882 2884 2885 2828 2886 
+744 2428 2446 177 176 2885 2887 191 2831 2888 
+745 356 357 2447 2429 371 2889 2890 2833 2891 
+746 2429 2447 2448 2430 2890 2892 2893 2836 2894 
+747 2430 2448 2449 2431 2893 2895 2896 2839 2897 
+748 2431 2449 2450 2432 2896 2898 2899 2842 2900 
+749 2432 2450 2451 2433 2899 2901 2902 2845 2903 
+750 2433 2451 2452 2434 2902 2904 2905 2848 2906 
+751 2434 2452 2453 2435 2905 2907 2908 2851 2909 
+752 2435 2453 2454 2436 2908 2910 2911 2854 2912 
+753 2436 2454 2455 2437 2911 2913 2914 2857 2915 
+754 2437 2455 2456 2438 2914 2916 2917 2860 2918 
+755 2438 2456 2457 2439 2917 2919 2920 2863 2921 
+756 2439 2457 2458 2440 2920 2922 2923 2866 2924 
+757 2440 2458 2459 2441 2923 2925 2926 2869 2927 
+758 2441 2459 2460 2442 2926 2928 2929 2872 2930 
+759 2442 2460 2461 2443 2929 2931 2932 2875 2933 
+760 2443 2461 2462 2444 2932 2934 2935 2878 2936 
+761 2444 2462 2463 2445 2935 2937 2938 2881 2939 
+762 2445 2463 2464 2446 2938 2940 2941 2884 2942 
+763 2446 2464 178 177 2941 2943 192 2887 2944 
+764 357 358 2465 2447 372 2945 2946 2889 2947 
+765 2447 2465 2466 2448 2946 2948 2949 2892 2950 
+766 2448 2466 2467 2449 2949 2951 2952 2895 2953 
+767 2449 2467 2468 2450 2952 2954 2955 2898 2956 
+768 2450 2468 2469 2451 2955 2957 2958 2901 2959 
+769 2451 2469 2470 2452 2958 2960 2961 2904 2962 
+770 2452 2470 2471 2453 2961 2963 2964 2907 2965 
+771 2453 2471 2472 2454 2964 2966 2967 2910 2968 
+772 2454 2472 2473 2455 2967 2969 2970 2913 2971 
+773 2455 2473 2474 2456 2970 2972 2973 2916 2974 
+774 2456 2474 2475 2457 2973 2975 2976 2919 2977 
+775 2457 2475 2476 2458 2976 2978 2979 2922 2980 
+776 2458 2476 2477 2459 2979 2981 2982 2925 2983 
+777 2459 2477 2478 2460 2982 2984 2985 2928 2986 
+778 2460 2478 2479 2461 2985 2987 2988 2931 2989 
+779 2461 2479 2480 2462 2988 2990 2991 2934 2992 
+780 2462 2480 2481 2463 2991 2993 2994 2937 2995 
+781 2463 2481 2482 2464 2994 2996 2997 2940 2998 
+782 2464 2482 179 178 2997 2999 193 2943 3000 
+783 358 359 2483 2465 373 3001 3002 2945 3003 
+784 2465 2483 2484 2466 3002 3004 3005 2948 3006 
+785 2466 2484 2485 2467 3005 3007 3008 2951 3009 
+786 2467 2485 2486 2468 3008 3010 3011 2954 3012 
+787 2468 2486 2487 2469 3011 3013 3014 2957 3015 
+788 2469 2487 2488 2470 3014 3016 3017 2960 3018 
+789 2470 2488 2489 2471 3017 3019 3020 2963 3021 
+790 2471 2489 2490 2472 3020 3022 3023 2966 3024 
+791 2472 2490 2491 2473 3023 3025 3026 2969 3027 
+792 2473 2491 2492 2474 3026 3028 3029 2972 3030 
+793 2474 2492 2493 2475 3029 3031 3032 2975 3033 
+794 2475 2493 2494 2476 3032 3034 3035 2978 3036 
+795 2476 2494 2495 2477 3035 3037 3038 2981 3039 
+796 2477 2495 2496 2478 3038 3040 3041 2984 3042 
+797 2478 2496 2497 2479 3041 3043 3044 2987 3045 
+798 2479 2497 2498 2480 3044 3046 3047 2990 3048 
+799 2480 2498 2499 2481 3047 3049 3050 2993 3051 
+800 2481 2499 2500 2482 3050 3052 3053 2996 3054 
+801 2482 2500 180 179 3053 3055 194 2999 3056 
+802 359 360 2501 2483 374 3057 3058 3001 3059 
+803 2483 2501 2502 2484 3058 3060 3061 3004 3062 
+804 2484 2502 2503 2485 3061 3063 3064 3007 3065 
+805 2485 2503 2504 2486 3064 3066 3067 3010 3068 
+806 2486 2504 2505 2487 3067 3069 3070 3013 3071 
+807 2487 2505 2506 2488 3070 3072 3073 3016 3074 
+808 2488 2506 2507 2489 3073 3075 3076 3019 3077 
+809 2489 2507 2508 2490 3076 3078 3079 3022 3080 
+810 2490 2508 2509 2491 3079 3081 3082 3025 3083 
+811 2491 2509 2510 2492 3082 3084 3085 3028 3086 
+812 2492 2510 2511 2493 3085 3087 3088 3031 3089 
+813 2493 2511 2512 2494 3088 3090 3091 3034 3092 
+814 2494 2512 2513 2495 3091 3093 3094 3037 3095 
+815 2495 2513 2514 2496 3094 3096 3097 3040 3098 
+816 2496 2514 2515 2497 3097 3099 3100 3043 3101 
+817 2497 2515 2516 2498 3100 3102 3103 3046 3104 
+818 2498 2516 2517 2499 3103 3105 3106 3049 3107 
+819 2499 2517 2518 2500 3106 3108 3109 3052 3110 
+820 2500 2518 181 180 3109 3111 195 3055 3112 
+821 360 361 2519 2501 375 3113 3114 3057 3115 
+822 2501 2519 2520 2502 3114 3116 3117 3060 3118 
+823 2502 2520 2521 2503 3117 3119 3120 3063 3121 
+824 2503 2521 2522 2504 3120 3122 3123 3066 3124 
+825 2504 2522 2523 2505 3123 3125 3126 3069 3127 
+826 2505 2523 2524 2506 3126 3128 3129 3072 3130 
+827 2506 2524 2525 2507 3129 3131 3132 3075 3133 
+828 2507 2525 2526 2508 3132 3134 3135 3078 3136 
+829 2508 2526 2527 2509 3135 3137 3138 3081 3139 
+830 2509 2527 2528 2510 3138 3140 3141 3084 3142 
+831 2510 2528 2529 2511 3141 3143 3144 3087 3145 
+832 2511 2529 2530 2512 3144 3146 3147 3090 3148 
+833 2512 2530 2531 2513 3147 3149 3150 3093 3151 
+834 2513 2531 2532 2514 3150 3152 3153 3096 3154 
+835 2514 2532 2533 2515 3153 3155 3156 3099 3157 
+836 2515 2533 2534 2516 3156 3158 3159 3102 3160 
+837 2516 2534 2535 2517 3159 3161 3162 3105 3163 
+838 2517 2535 2536 2518 3162 3164 3165 3108 3166 
+839 2518 2536 182 181 3165 3167 196 3111 3168 
+840 361 362 2537 2519 376 3169 3170 3113 3171 
+841 2519 2537 2538 2520 3170 3172 3173 3116 3174 
+842 2520 2538 2539 2521 3173 3175 3176 3119 3177 
+843 2521 2539 2540 2522 3176 3178 3179 3122 3180 
+844 2522 2540 2541 2523 3179 3181 3182 3125 3183 
+845 2523 2541 2542 2524 3182 3184 3185 3128 3186 
+846 2524 2542 2543 2525 3185 3187 3188 3131 3189 
+847 2525 2543 2544 2526 3188 3190 3191 3134 3192 
+848 2526 2544 2545 2527 3191 3193 3194 3137 3195 
+849 2527 2545 2546 2528 3194 3196 3197 3140 3198 
+850 2528 2546 2547 2529 3197 3199 3200 3143 3201 
+851 2529 2547 2548 2530 3200 3202 3203 3146 3204 
+852 2530 2548 2549 2531 3203 3205 3206 3149 3207 
+853 2531 2549 2550 2532 3206 3208 3209 3152 3210 
+854 2532 2550 2551 2533 3209 3211 3212 3155 3213 
+855 2533 2551 2552 2534 3212 3214 3215 3158 3216 
+856 2534 2552 2553 2535 3215 3217 3218 3161 3219 
+857 2535 2553 2554 2536 3218 3220 3221 3164 3222 
+858 2536 2554 183 182 3221 3223 197 3167 3224 
+859 362 363 2555 2537 377 3225 3226 3169 3227 
+860 2537 2555 2556 2538 3226 3228 3229 3172 3230 
+861 2538 2556 2557 2539 3229 3231 3232 3175 3233 
+862 2539 2557 2558 2540 3232 3234 3235 3178 3236 
+863 2540 2558 2559 2541 3235 3237 3238 3181 3239 
+864 2541 2559 2560 2542 3238 3240 3241 3184 3242 
+865 2542 2560 2561 2543 3241 3243 3244 3187 3245 
+866 2543 2561 2562 2544 3244 3246 3247 3190 3248 
+867 2544 2562 2563 2545 3247 3249 3250 3193 3251 
+868 2545 2563 2564 2546 3250 3252 3253 3196 3254 
+869 2546 2564 2565 2547 3253 3255 3256 3199 3257 
+870 2547 2565 2566 2548 3256 3258 3259 3202 3260 
+871 2548 2566 2567 2549 3259 3261 3262 3205 3263 
+872 2549 2567 2568 2550 3262 3264 3265 3208 3266 
+873 2550 2568 2569 2551 3265 3267 3268 3211 3269 
+874 2551 2569 2570 2552 3268 3270 3271 3214 3272 
+875 2552 2570 2571 2553 3271 3273 3274 3217 3275 
+876 2553 2571 2572 2554 3274 3276 3277 3220 3278 
+877 2554 2572 184 183 3277 3279 198 3223 3280 
+878 363 364 2573 2555 378 3281 3282 3225 3283 
+879 2555 2573 2574 2556 3282 3284 3285 3228 3286 
+880 2556 2574 2575 2557 3285 3287 3288 3231 3289 
+881 2557 2575 2576 2558 3288 3290 3291 3234 3292 
+882 2558 2576 2577 2559 3291 3293 3294 3237 3295 
+883 2559 2577 2578 2560 3294 3296 3297 3240 3298 
+884 2560 2578 2579 2561 3297 3299 3300 3243 3301 
+885 2561 2579 2580 2562 3300 3302 3303 3246 3304 
+886 2562 2580 2581 2563 3303 3305 3306 3249 3307 
+887 2563 2581 2582 2564 3306 3308 3309 3252 3310 
+888 2564 2582 2583 2565 3309 3311 3312 3255 3313 
+889 2565 2583 2584 2566 3312 3314 3315 3258 3316 
+890 2566 2584 2585 2567 3315 3317 3318 3261 3319 
+891 2567 2585 2586 2568 3318 3320 3321 3264 3322 
+892 2568 2586 2587 2569 3321 3323 3324 3267 3325 
+893 2569 2587 2588 2570 3324 3326 3327 3270 3328 
+894 2570 2588 2589 2571 3327 3329 3330 3273 3331 
+895 2571 2589 2590 2572 3330 3332 3333 3276 3334 
+896 2572 2590 185 184 3333 3335 199 3279 3336 
+897 364 365 2591 2573 379 3337 3338 3281 3339 
+898 2573 2591 2592 2574 3338 3340 3341 3284 3342 
+899 2574 2592 2593 2575 3341 3343 3344 3287 3345 
+900 2575 2593 2594 2576 3344 3346 3347 3290 3348 
+901 2576 2594 2595 2577 3347 3349 3350 3293 3351 
+902 2577 2595 2596 2578 3350 3352 3353 3296 3354 
+903 2578 2596 2597 2579 3353 3355 3356 3299 3357 
+904 2579 2597 2598 2580 3356 3358 3359 3302 3360 
+905 2580 2598 2599 2581 3359 3361 3362 3305 3363 
+906 2581 2599 2600 2582 3362 3364 3365 3308 3366 
+907 2582 2600 2601 2583 3365 3367 3368 3311 3369 
+908 2583 2601 2602 2584 3368 3370 3371 3314 3372 
+909 2584 2602 2603 2585 3371 3373 3374 3317 3375 
+910 2585 2603 2604 2586 3374 3376 3377 3320 3378 
+911 2586 2604 2605 2587 3377 3379 3380 3323 3381 
+912 2587 2605 2606 2588 3380 3382 3383 3326 3384 
+913 2588 2606 2607 2589 3383 3385 3386 3329 3387 
+914 2589 2607 2608 2590 3386 3388 3389 3332 3390 
+915 2590 2608 186 185 3389 3391 200 3335 3392 
+916 365 7 219 2591 380 238 3393 3337 3394 
+917 2591 219 218 2592 3393 237 3395 3340 3396 
+918 2592 218 217 2593 3395 236 3397 3343 3398 
+919 2593 217 216 2594 3397 235 3399 3346 3400 
+920 2594 216 215 2595 3399 234 3401 3349 3402 
+921 2595 215 214 2596 3401 233 3403 3352 3404 
+922 2596 214 213 2597 3403 232 3405 3355 3406 
+923 2597 213 212 2598 3405 231 3407 3358 3408 
+924 2598 212 211 2599 3407 230 3409 3361 3410 
+925 2599 211 210 2600 3409 229 3411 3364 3412 
+926 2600 210 209 2601 3411 228 3413 3367 3414 
+927 2601 209 208 2602 3413 227 3415 3370 3416 
+928 2602 208 207 2603 3415 226 3417 3373 3418 
+929 2603 207 206 2604 3417 225 3419 3376 3420 
+930 2604 206 205 2605 3419 224 3421 3379 3422 
+931 2605 205 204 2606 3421 223 3423 3382 3424 
+932 2606 204 203 2607 3423 222 3425 3385 3426 
+933 2607 203 202 2608 3425 221 3427 3388 3428 
+934 2608 202 2 186 3427 220 201 3391 3429 
+$EndElements
diff --git a/dG3D/src/dG3DIPVariable.cpp b/dG3D/src/dG3DIPVariable.cpp
index 865d5d0cb547302a9537a3ad3db20d2b11127bc6..c654d39e9209c23e11a68aa27e9c1f91057898ee 100644
--- a/dG3D/src/dG3DIPVariable.cpp
+++ b/dG3D/src/dG3DIPVariable.cpp
@@ -2007,9 +2007,6 @@ torchANNBasedDG3DIPVariable& torchANNBasedDG3DIPVariable::operator =(const IPVar
     _internalVars = psrc->_internalVars;
     _kinematicVariables = psrc->_kinematicVariables;
     _extraVariables = psrc->_extraVariables; // Include extra parameters at GP when using overloaded(=) @Mohib
-
-    // @Mohib TODO: Remove b4 commit
-    //_latticeParams = psrc->_latticeParams;
   }
 #else
   Msg::Error("NOT COMPILED WITH TORCH");
@@ -2036,47 +2033,62 @@ double torchANNBasedDG3DIPVariable::get(const int comp) const
 {
 #if defined(HAVE_TORCH)
    auto Vars_a = _internalVars.accessor<float,3>();
-    if (comp == IPField::USER0)
+  if (comp == IPField::USER0)
   {
-    if (_n > 1) return Vars_a[0][0][0];
+    if (_extraVariables.size2() > 0) return _extraVariables(0,0);
     else return 0.;
   }
   else if (comp == IPField::USER1)
   {
-    if (_n > 2) return Vars_a[0][0][1];
+    if (_extraVariables.size2() > 1) return _extraVariables(0,1);
     else return 0.;
   }
   else if (comp == IPField::USER2)
+  {
+    if (_extraVariables.size2() > 2) return _extraVariables(0,2);
+    else return 0.;
+  }
+  else  if (comp == IPField::USER3)
+  {
+    if (_n > 1) return Vars_a[0][0][0];
+    else return 0.;
+  }
+  else if (comp == IPField::USER4)
+  {
+    if (_n > 2) return Vars_a[0][0][1];
+    else return 0.;
+  }
+  else if (comp == IPField::USER5)
   {
     if (_n > 3) return Vars_a[0][0][2];
     else return 0.;
   }
-  else if (comp == IPField::USER3)
+  else if (comp == IPField::USER6)
   {
     if (_n > 4) return Vars_a[0][0][3];
     else return 0.;
   }
-  else if (comp == IPField::USER4)
+  else if (comp == IPField::USER7)
   {
     if (_n > 5) return Vars_a[0][0][4];
     else return 0.;
   }
-  else if (comp == IPField::USER5)
+  else if (comp == IPField::USER8)
   {
     if (_n > 6) return Vars_a[0][0][5];
     else return 0.;
   }
-  else if (comp == IPField::USER6)
+  else if (comp == IPField::USER9)
   {
     if (_n > 7) return Vars_a[0][0][6];
     else return 0.;
   }
-  else if (comp == IPField::USER7)
+  else if (comp == IPField::USER10)
   {
     if (_n > 8) return Vars_a[0][0][7];
     else return 0.;
   }
-  else if (comp == IPField::USER8)
+  /*else if (comp == IPField::USER8)
   {
     if (_n > 9) return Vars_a[0][0][8];
     else return 0.;
@@ -2090,7 +2102,7 @@ double torchANNBasedDG3DIPVariable::get(const int comp) const
   {
     if (_n > 11) return Vars_a[0][0][10];
     else return 0.;
-  }
+  }*/
   else
   {
     return dG3DIPVariable::get(comp);
@@ -2216,6 +2228,118 @@ void J2SmallStrainDG3DIPVariable::restart()
   return;
 }
 
+AnisotropicPlasticityDG3DIPVariable::AnisotropicPlasticityDG3DIPVariable(const mlawAnisotropicPlasticity &anisoLaw, const bool createBodyForceHO, const bool oninter): dG3DIPVariable(createBodyForceHO, oninter)
+{
+  _ipv = new  IPAnisotropicPlasticity(anisoLaw.getJ2IsotropicHardening());
+}
+AnisotropicPlasticityDG3DIPVariable::AnisotropicPlasticityDG3DIPVariable(const AnisotropicPlasticityDG3DIPVariable &source) : dG3DIPVariable(source)
+{
+  _ipv = NULL;
+  if(source._ipv != NULL){
+    _ipv = dynamic_cast<IPAnisotropicPlasticity*>(source._ipv->clone());
+  }
+}
+AnisotropicPlasticityDG3DIPVariable& AnisotropicPlasticityDG3DIPVariable::operator=(const IPVariable &source)
+{
+  dG3DIPVariable::operator=(source);
+  const AnisotropicPlasticityDG3DIPVariable* src = dynamic_cast<const AnisotropicPlasticityDG3DIPVariable*>(&source);
+  if(src != NULL){
+    if (src->_ipv != NULL){
+      if (_ipv != NULL) {
+        _ipv->operator=(*dynamic_cast<const IPVariable*>(src->_ipv));
+      }
+      else{
+        _ipv = dynamic_cast<IPAnisotropicPlasticity*>(src->_ipv->clone());
+      }
+    }
+    else{
+      if (_ipv) {
+        delete _ipv;
+       _ipv = NULL;
+      }
+    }
+
+  }
+  return *this;
+}
+double AnisotropicPlasticityDG3DIPVariable::get(const int comp) const
+{
+  if(comp == IPField::PLASTICSTRAIN)
+  {
+    return _ipv->_j2lepspbarre;
+  }
+  else if(comp == IPField::FP_XX)
+  {
+    return _ipv->_j2lepsp(0,0);
+  }
+  else if(comp == IPField::FP_XY)
+  {
+    return _ipv->_j2lepsp(0,1);
+  }
+  else if(comp == IPField::FP_XZ)
+  {
+    return _ipv->_j2lepsp(0,2);
+  }
+  else if(comp == IPField::FP_YX)
+  {
+    return _ipv->_j2lepsp(1,0);
+  }
+  else if(comp == IPField::FP_YY)
+  {
+    return _ipv->_j2lepsp(1,1);
+  }
+  else if(comp == IPField::FP_YZ)
+  {
+    return _ipv->_j2lepsp(1,2);
+  }
+  else if(comp == IPField::FP_ZX)
+  {
+    return _ipv->_j2lepsp(2,0);
+  }
+  else if(comp == IPField::FP_ZY)
+  {
+    return _ipv->_j2lepsp(2,1);
+  }
+  else if(comp == IPField::FP_ZZ)
+  {
+    return _ipv->_j2lepsp(2,2);
+  }
+  else if (comp == IPField::ISO_YIELD or
+           comp == IPField::ISO_YIELD_TENSILE or
+           comp == IPField::ISO_YIELD_COMPRESSION)
+  {
+    return _ipv->getConstRefToIPJ2IsotropicHardening().getR();
+  }
+  else if (comp == IPField::ISO_YIELD_SHEAR)
+  {
+    return (_ipv->getConstRefToIPJ2IsotropicHardening().getR())/sqrt(3.);
+  }
+  else
+  {
+    //return dG3DIPVariable::get(comp);
+    double val = _ipv->get(comp);
+    if (val == 0.)
+      val = dG3DIPVariable::get(comp);
+    return val;
+  }
+}
+double  AnisotropicPlasticityDG3DIPVariable::defoEnergy() const
+{
+  return getIPAnisotropicPlasticity()->defoEnergy();
+}
+double  AnisotropicPlasticityDG3DIPVariable::plasticEnergy() const
+{
+  return getIPAnisotropicPlasticity()->plasticEnergy();
+}
+
+void AnisotropicPlasticityDG3DIPVariable::restart()
+{
+  dG3DIPVariable::restart();
+  restartManager::restart(_ipv);
+  return;
+}
+
+
 J2LinearDG3DIPVariable::J2LinearDG3DIPVariable(const mlawJ2linear &_j2law, const bool createBodyForceHO, const bool oninter): dG3DIPVariable(createBodyForceHO, oninter)
 {
   _j2ipv = new   IPJ2linear(_j2law.getJ2IsotropicHardening());
diff --git a/dG3D/src/dG3DIPVariable.h b/dG3D/src/dG3DIPVariable.h
index 66de2a5087da8e525b9a1f56ad08479d987a3c25..e10d8958ea407e3dc25f400c285d0a13b965f104 100644
--- a/dG3D/src/dG3DIPVariable.h
+++ b/dG3D/src/dG3DIPVariable.h
@@ -41,6 +41,7 @@
 #include "ipLinearElecMagTherMech.h"
 #include "ipLinearElecMagInductor.h"
 #include "mlawJ2linear.h"
+#include "mlawAnisotropicPlasticity.h"
 #include "mlawJ2VMSmallStrain.h"
 #include "mlawJ2ThermoMechanics.h"
 #include "mlawLocalDamageJ2Hyper.h"
@@ -2253,11 +2254,9 @@ class torchANNBasedDG3DIPVariable :public dG3DIPVariable
     fullMatrix<double> _kinematicVariables; // kinematic variable
     fullMatrix<double> restart_internalVars; // internal variable
     fullMatrix<double> _extraVariables; // variables other than kinematic and hidden needed at GP @Mohib
-    // @Mohib TODO: Remove b4 commit
-    //fullMatrix<double> _latticeParams;
 
   public:
-    //torchANNBasedDG3DIPVariable(const int n, const double initial_h, const bool createBodyForceHO,  const bool oninter);
+    //torchANNBasedDG3DIPVariable(const int n, const double initial_h, const bool createBodyForceHO,  const bool oninter); // Retundend init signature. Kept for legacy @Mohib
     // Overloading for handling additional params at GP @Mohib
     torchANNBasedDG3DIPVariable(const int n, const double initial_h, const bool createBodyForceHO,  const bool oninter, const int extraInput=0, const std::vector<double> initialValue_Extra={});
     torchANNBasedDG3DIPVariable(const torchANNBasedDG3DIPVariable &source);
@@ -2422,6 +2421,48 @@ class J2SmallStrainDG3DIPVariable : public dG3DIPVariable // or store data in a
   virtual void restart();
 };
 
+class AnisotropicPlasticityDG3DIPVariable : public dG3DIPVariable // or store data in a different way
+{
+ protected:
+  IPAnisotropicPlasticity *_ipv;
+ public:
+  AnisotropicPlasticityDG3DIPVariable(const mlawAnisotropicPlasticity &_anisoLaw, const bool createBodyForceHO, const bool oninter);
+  AnisotropicPlasticityDG3DIPVariable(const AnisotropicPlasticityDG3DIPVariable &source);
+  virtual AnisotropicPlasticityDG3DIPVariable& operator=(const IPVariable &source);
+  virtual ~AnisotropicPlasticityDG3DIPVariable(){if(_ipv!=NULL) {delete _ipv; _ipv=NULL;}};
+
+  virtual void setLocation(const IPVariable::LOCATION loc) {
+    dG3DIPVariable::setLocation(loc);
+    if (_ipv)
+      _ipv->setLocation(loc);
+  };
+
+  virtual IPVariable* getInternalData() {return _ipv;};
+  virtual const IPVariable* getInternalData()  const {return _ipv;};
+
+ /* specific function */
+  IPAnisotropicPlasticity* getIPAnisotropicPlasticity(){return _ipv;}
+  const IPAnisotropicPlasticity* getIPAnisotropicPlasticity() const{return _ipv;}
+  virtual double get(const int i) const;
+  virtual double defoEnergy() const;
+  virtual double plasticEnergy() const;
+  virtual double damageEnergy() const {return _ipv->damageEnergy();};
+
+  virtual bool dissipationIsActive() const {return _ipv->dissipationIsActive();};
+  virtual void blockDissipation(const bool fl){   _ipv->blockDissipation(fl);}
+  virtual bool dissipationIsBlocked() const { return _ipv->dissipationIsBlocked();}
+
+  // for path following based on  irreversibe energt
+  virtual double irreversibleEnergy() const {return _ipv->irreversibleEnergy();};
+  virtual double& getRefToIrreversibleEnergy() {return _ipv->getRefToIrreversibleEnergy();};
+
+  virtual const STensor3& getConstRefToDIrreversibleEnergyDDeformationGradient() const {return _ipv->getConstRefToDIrreversibleEnergyDF();};
+  virtual STensor3& getRefToDIrreversibleEnergyDDeformationGradient() {return _ipv->getRefToDIrreversibleEnergyDF();};
+
+  virtual IPVariable* clone() const {return new AnisotropicPlasticityDG3DIPVariable(*this);};
+  virtual void restart();
+};
+
 class J2LinearDG3DIPVariable : public dG3DIPVariable // or store data in a different way
 {
  protected:
diff --git a/dG3D/src/dG3DMaterialLaw.cpp b/dG3D/src/dG3DMaterialLaw.cpp
index 4225095d4ad640f04b29b75fd1ddade5e2872a68..4fb932545352547d088a41636222ef281ab6f130 100644
--- a/dG3D/src/dG3DMaterialLaw.cpp
+++ b/dG3D/src/dG3DMaterialLaw.cpp
@@ -22,6 +22,7 @@
 #include "mlawElecSMP.h"
 #include <iostream>
 #include <fstream>
+#include <sstream>
 #include <iomanip>
 #include <vector>
 #include <string>
@@ -1900,6 +1901,103 @@ double ANNBasedDG3DMaterialLaw::soundSpeed() const
 };
 //
 
+void ExtraVariablesAtGaussPoints::fill(const std::string fname)
+{
+  Msg::Info("read %s",fname.c_str());
+  filled=true;
+  locations.clear();
+  field.clear();
+
+  std::ifstream inputFile(fname.c_str()); 
+  std::vector<double> numbers;
+  if (inputFile.is_open()) 
+  {
+    std::string line;
+    while (std::getline(inputFile, line)) 
+    {
+      std::stringstream ss(line);
+      std::string token;
+      numbers.clear();
+      while (std::getline(ss, token, ';')) {
+        double num;
+        std::istringstream(token) >> num;
+        numbers.push_back(num);
+      }
+      int numberSize=numbers.size();
+      //Msg::Info("Line of %d values",numberSize);
+      if(numberSize<4)
+      {
+        Msg::Error("Not enough numbers per line in %s",fname.c_str());
+        Msg::Exit(0);
+      }
+      SVector3 pt(numbers[0],numbers[1],numbers[2]);
+      locations.push_back(pt);
+      std::vector<double> localfield=std::vector<double>(numbers.begin()+3,numbers.end());
+      field.push_back(localfield);
+    }
+  }
+  else
+  {
+     Msg::Error("Unable to read %s",fname.c_str());
+     Msg::Exit(0);
+  }
+
+  inputFile.close();
+}
+  
+const std::vector<double> &ExtraVariablesAtGaussPoints::getFieldAtClosestLocation(const SVector3 &gp) const
+{
+  std::vector<SVector3>::const_iterator it1min, it1= locations.begin();
+  std::vector< std::vector<double> >::const_iterator it2min, it2 = field.begin();
+  if (locations.size() == field.size()) {
+    double minimumdist = 1.e12;
+    SVector3 dist;
+    for (; it1 != locations.end() && it2 != field.end(); ++it1, ++it2) {
+      dist=gp;
+      dist-=*it1;
+      double norm=dist.norm();
+      if(norm <minimumdist)
+      {
+        it1min=it1;
+        it2min=it2;
+        minimumdist=norm;
+      }
+    }
+    //Msg::Info("Values at Gauss point location: %f %f %f", (*it1min)[0],(*it1min)[1],(*it1min)[2]);
+    //std::vector<double>::const_iterator it3;
+    //for (it3=it2min->begin(); it3 != it2min->end(); ++it3) {      
+    //        Msg::Info("Element %f",*it3);
+    //}
+  } 
+  else 
+  {
+    Msg::Error("ExtraVariablesAtGaussPoints locations and field not of the same size");
+    Msg::Exit(0);
+  }  
+  return *it2min;
+}
+  
+void ExtraVariablesAtGaussPoints::print() const
+{
+  if (locations.size() == field.size()) {
+    std::vector<SVector3>::const_iterator it1 = locations.begin();
+    std::vector< std::vector<double> >::const_iterator it2 = field.begin();
+    for (; it1 != locations.end() && it2 != field.end(); ++it1, ++it2) {
+      Msg::Info("Values at Gauss point location: %f %f %f", (*it1)[0],(*it1)[1],(*it1)[2]);
+      std::vector<double>::const_iterator it3;
+      for (it3=it2->begin(); it3 != it2->end(); ++it3) {      
+            Msg::Info("Element %f",*it3);
+      }
+    }
+  } 
+  else 
+  {
+    Msg::Error("ExtraVariablesAtGaussPoints locations and field not of the same size");
+    Msg::Exit(0);
+  }
+}
+
+
 torchANNBasedDG3DMaterialLaw::torchANNBasedDG3DMaterialLaw(const int num, const double rho, const int numberOfInput,
                 const int numInternalVars, const char* nameTorch, const double EXXmean, const double EXXstd, const double EXYmean,
                 const double EXYstd, const double EYYmean, const double EYYstd, const double EYZmean, const double EYZstd, const double EZZmean,
@@ -1910,8 +2008,10 @@ torchANNBasedDG3DMaterialLaw::torchANNBasedDG3DMaterialLaw(const int num, const
                 _EXXmean(EXXmean), _EXXstd(EXXstd), _EXYmean(EXYmean), _EXYstd(EXYstd), _EYYmean(EYYmean), _EYYstd(EYYstd), _EYZmean(EYZmean),
                 _EYZstd(EYZstd), _EZZmean(EZZmean), _EZZstd(EZZstd), _EZXmean(EZXmean), _EZXstd(EZXstd), _SXXmean(SXXmean), _SXXstd(SXXstd), _SXYmean(SXYmean),
                 _SXYstd(SXYstd), _SYYmean(SYYmean), _SYYstd(SYYstd), _SYZmean(SYZmean), _SYZstd(SYZstd), _SZZmean(SZZmean), _SZZstd(SZZstd),
-                _SZXmean(SZXmean), _SZXstd(SZXstd), _tangentByPerturbation(pert), _pertTol(tol), _kinematicInput(EGL), _NeedExtraNorm(false),
-                _numberOfExtraInput(0)
+                _SZXmean(SZXmean), _SZXstd(SZXstd), _tangentByPerturbation(pert), _pertTol(tol), _kinematicInput(EGL), _NeedExtraNorm(false),  
+		_numberOfExtraInput(0),
+                _fileExtraInputsGp(""), _extraVariablesAtGaussPoints(), _time_arg(-1), _ctime(0.0)
+
 {
 #if defined(HAVE_TORCH)
     try{
@@ -1971,7 +2071,6 @@ torchANNBasedDG3DMaterialLaw::torchANNBasedDG3DMaterialLaw(const int num, const
 
 }
 
-// Modified to add _extra_inp, _latticeRadius & _latticeSize @Mohib. TODO: refractor latticeRadius and size to IPvariable
 torchANNBasedDG3DMaterialLaw::torchANNBasedDG3DMaterialLaw(const torchANNBasedDG3DMaterialLaw& src):
       dG3DMaterialLaw(src), _numberOfInput(src._numberOfInput), _numberOfInternalVariables(src._numberOfInternalVariables), _initialValue_h(src._initialValue_h),
                 _EXXmean(src._EXXmean), _EXXstd(src._EXXstd), _EXYmean(src._EXYmean), _EXYstd(src._EXYstd), _EYYmean(src._EYYmean), _EYYstd(src._EYYstd),
@@ -1980,7 +2079,8 @@ torchANNBasedDG3DMaterialLaw::torchANNBasedDG3DMaterialLaw(const torchANNBasedDG
                 _SYZmean(src._SYZmean), _SYZstd(src._SYZstd), _SZZmean(src._SZZmean), _SZZstd(src._SZZstd), _SZXmean(src._SZXmean), _SZXstd(src._SZXstd),
                 _tangentByPerturbation(src._tangentByPerturbation), _pertTol(src._pertTol), _kinematicInput(src._kinematicInput), _NeedExtraNorm(src._NeedExtraNorm),
                 _numberOfExtraInput(src._numberOfExtraInput), _initialValue_ExtraInput(src._initialValue_ExtraInput),
-                _normParams_ExtraInput(src._normParams_ExtraInput)
+                _normParams_ExtraInput(src._normParams_ExtraInput), _fileExtraInputsGp(src._fileExtraInputsGp), 
+                _extraVariablesAtGaussPoints(src._extraVariablesAtGaussPoints), _time_arg(src._time_arg), _ctime(src._ctime)
 {
 #if defined(HAVE_TORCH)
        module = src.module;
@@ -2058,39 +2158,26 @@ void torchANNBasedDG3DMaterialLaw::setNumExtraInput(const int value){
     _numberOfExtraInput = value;
 }
 
+// Set the position of time in the extra input array @Mohib
+void torchANNBasedDG3DMaterialLaw::setTimeArg(const int value){
+    _time_arg = value;
+}
+
 // Set init values for extra inputs @Mohib
 void torchANNBasedDG3DMaterialLaw::setInitialExtraInput(const double value){
     _initialValue_ExtraInput.push_back(value);
 }
 
-// @Mohib TODO: Remove b4 commit
-//void torchANNBasedDG3DMaterialLaw::setLatticeParameters(const double radius, const double size){
-//    _latticeRadius = radius;
-//    _latticeSize = size;
-//}
-
 // Set normalization parameters for extra inputs @Mohib
 void torchANNBasedDG3DMaterialLaw::setNormExtraInp(const double mean, const double std){
     _normParams_ExtraInput.push_back(mean);
     _normParams_ExtraInput.push_back(std);
 }
 
-// @Mohib TODO: Remove b4 commit
-//void torchANNBasedDG3DMaterialLaw::setExtraInp(const double mean, const double std){
-//    _extra_inp.push_back(mean);
-//    _extra_inp.push_back(std);
-//}
-
-//void torchANNBasedDG3DMaterialLaw::setInitTime(const double curr_t){
-//    _pTime = curr_t;
-//    _cTime = curr_t;
-//}
-
+// Update current time. and access it at GP using ctime (local scope). Necessary for surrogates that are time dependend such as MOAMMM lattices @Mohib
 void torchANNBasedDG3DMaterialLaw::setTime(const double ctime, const double dtime){
     dG3DMaterialLaw::setTime(ctime,dtime);
-    // @Mohib TODO: remove b4 commit
-    //    _pTime = _cTime;
-    //    _cTime = ctime;
+    this->_ctime = ctime;
 }
 
 void torchANNBasedDG3DMaterialLaw::initLaws(const std::map<int,materialLaw*> &maplaw){
@@ -2107,12 +2194,6 @@ void torchANNBasedDG3DMaterialLaw::initLaws(const std::map<int,materialLaw*> &ma
             Extra1(0, i) = _initialValue_ExtraInput[i];
         }
 
-        // @Mohib TODO: Remove b4 commit
-        // Extra1(0,0) = _latticeRadius;
-        // Extra1(0,1) = _latticeSize;
-        // //TODO: Remove hardcode @Mohib
-        // Extra1(0,2) = _cTime;
-
         if (_tangentByPerturbation){
            //TODO: Refractor this for Lattice @Mohib
           static fullMatrix<double> E1_plus(1,6), S_plus(1,6);
@@ -2173,28 +2254,27 @@ void torchANNBasedDG3DMaterialLaw::createIPState(IPStateBase* &ips, bool hasBody
   // check interface element
   bool inter=true;
   const MInterfaceElement *iele = dynamic_cast<const MInterfaceElement*>(ele);
+  std::vector<double> value_ExtraInput=_initialValue_ExtraInput;
+  SPoint3 ptGlobal;
+  ele->pnt(GP->pt[0],GP->pt[1],GP->pt[2],ptGlobal);
+  SVector3 pt(ptGlobal);
+  for(int i=0; i<value_ExtraInput.size();i++)
+  {
+    if(_extraVariablesAtGaussPoints.isStored(i))
+    {
+      value_ExtraInput[i]=_extraVariablesAtGaussPoints.returnFieldAtClosestLocation(i,pt);
+    }
+  }
+  //Msg::Info("value_ExtraInput %f %f %f", value_ExtraInput[0], value_ExtraInput[1],value_ExtraInput[2]);
+  
   if(iele==NULL) inter=false;
-    IPVariable* ipvi = new  torchANNBasedDG3DIPVariable(_numberOfInternalVariables,_initialValue_h,hasBodyForce,inter, _numberOfExtraInput, _initialValue_ExtraInput);
-    IPVariable* ipv1 = new  torchANNBasedDG3DIPVariable(_numberOfInternalVariables,_initialValue_h,hasBodyForce,inter, _numberOfExtraInput, _initialValue_ExtraInput);
-    IPVariable* ipv2 = new  torchANNBasedDG3DIPVariable(_numberOfInternalVariables,_initialValue_h,hasBodyForce,inter, _numberOfExtraInput, _initialValue_ExtraInput);
+    IPVariable* ipvi = new  torchANNBasedDG3DIPVariable(_numberOfInternalVariables,_initialValue_h,hasBodyForce,inter, _numberOfExtraInput, value_ExtraInput);
+    IPVariable* ipv1 = new  torchANNBasedDG3DIPVariable(_numberOfInternalVariables,_initialValue_h,hasBodyForce,inter, _numberOfExtraInput, value_ExtraInput);
+    IPVariable* ipv2 = new  torchANNBasedDG3DIPVariable(_numberOfInternalVariables,_initialValue_h,hasBodyForce,inter, _numberOfExtraInput, value_ExtraInput);
     if(ips != NULL) delete ips;
   ips = new IP3State(state_,ipvi,ipv1,ipv2);
 }
 
-// Overloading for handeling extra parameters needed at GP @Mohib
-//void torchANNBasedDG3DMaterialLaw::createIPState(IPStateBase* &ips, bool hasBodyForce, const bool* state_,const MElement *ele, const int nbFF_, const IntPt *GP, const int gpt, const bool extraInput) const
-//{
-//    // check interface element
-//    bool inter=true;
-//    const MInterfaceElement *iele = dynamic_cast<const MInterfaceElement*>(ele);
-//    if(iele==NULL) inter=false;
-//    IPVariable* ipvi = new  torchANNBasedDG3DIPVariable(_numberOfInternalVariables,_initialValue_h,hasBodyForce,inter, _numberOfExtraInput, _initialValue_ExtraInput);
-//    IPVariable* ipv1 = new  torchANNBasedDG3DIPVariable(_numberOfInternalVariables,_initialValue_h,hasBodyForce,inter, _numberOfExtraInput, _initialValue_ExtraInput);
-//    IPVariable* ipv2 = new  torchANNBasedDG3DIPVariable(_numberOfInternalVariables,_initialValue_h,hasBodyForce,inter, _numberOfExtraInput, _initialValue_ExtraInput);
-//    if(ips != NULL) delete ips;
-//    ips = new IP3State(state_,ipvi,ipv1,ipv2);
-//}
-
 void torchANNBasedDG3DMaterialLaw::createIPVariable(IPVariable* &ipv, bool hasBodyForce, const MElement *ele, const int nbFF_, const IntPt *GP, const int gpt) const
 {
   if(ipv !=NULL) delete ipv;
@@ -2203,20 +2283,21 @@ void torchANNBasedDG3DMaterialLaw::createIPVariable(IPVariable* &ipv, bool hasBo
   if(iele == NULL){
     inter=false;
   }
-  ipv = new  torchANNBasedDG3DIPVariable(_numberOfInternalVariables,_initialValue_h,hasBodyForce,inter, _numberOfExtraInput, _initialValue_ExtraInput);
+  std::vector<double> value_ExtraInput=_initialValue_ExtraInput;
+  SPoint3 ptGlobal;
+  ele->pnt(GP->pt[0],GP->pt[1],GP->pt[2],ptGlobal);
+  SVector3 pt(ptGlobal);
+  for(int i=0; i<value_ExtraInput.size();i++)
+  {
+    if(_extraVariablesAtGaussPoints.isStored(i))
+    {
+      value_ExtraInput[i]=_extraVariablesAtGaussPoints.returnFieldAtClosestLocation(i,pt);
+    }
+  }
+  //Msg::Info("value_ExtraInput %f %f %f", value_ExtraInput[0], value_ExtraInput[1],value_ExtraInput[2]);
+  ipv = new  torchANNBasedDG3DIPVariable(_numberOfInternalVariables,_initialValue_h,hasBodyForce,inter, _numberOfExtraInput, value_ExtraInput);
 }
 
-// Overloading for handling extra variables needed at GP @Mohib
-//void torchANNBasedDG3DMaterialLaw::createIPVariable(IPVariable* &ipv, bool hasBodyForce, const MElement *ele, const int nbFF_, const IntPt *GP, const int gpt, const bool extraInput) const
-//{
-//    if(ipv !=NULL) delete ipv;
-//    bool inter=true;
-//    const MInterfaceElement *iele = dynamic_cast<const MInterfaceElement*>(ele);
-//    if(iele == NULL){
-//        inter=false;
-//    }
-//    ipv = new  torchANNBasedDG3DIPVariable(_numberOfInternalVariables,_initialValue_h,hasBodyForce,inter, _numberOfExtraInput, _initialValue_ExtraInput);
-//}
 void torchANNBasedDG3DMaterialLaw::stress(IPVariable* ipv, const IPVariable* ipvp, const bool stiff, const bool checkfrac, const bool dTangent)
 {
 #if defined(HAVE_TORCH)
@@ -2309,20 +2390,13 @@ void torchANNBasedDG3DMaterialLaw::stress(IPVariable* ipv, const IPVariable* ipv
   }
 
   // Get extra inputs required for torch model @Mohib
-   fullMatrix<double>& Extra1 = ipvcur->getRefToExtraVariables();
-
-  // @Mohib TODO: remove b4 commit
-  //if(_numberOfExtraInput != 0){
-      //fullMatrix<double>& Extra1 = ipvcur->getRefToExtraVariables();
-
-
-    //  fullMatrix<double> Extra1(1, _numberofExtraInput);
-    //  Extra1(0, 0) = _latticeRadius;
-    //  Extra1(0, 1) = _latticeSize;
-    //  Extra1(0, 2) = _cTime;
-  //}
-
+  fullMatrix<double>& Extra1 = ipvcur->getRefToExtraVariables();
 
+  if(_time_arg != -1){
+   // Set the current time @Mohib
+   Extra1(0, _time_arg) = _ctime;
+  }
+  //Msg::Info("value Extra1 %f %f %f", Extra1(0,0), Extra1(0,1),Extra1(0,2));
 
   static fullMatrix<double> S(1,6), DSDE(6,6);
   const torch::Tensor& h0 = ipvprev->getConstRefToInternalVariables();
@@ -3220,6 +3294,144 @@ void J2SmallStrainDG3DMaterialLaw::stress(IPVariable* ipv, const IPVariable* ipv
   ipvcur->setRefToDGElasticTangentModuli(this->elasticStiffness);
 }
 
+//
+AnisotropicPlasticityDG3DMaterialLaw::AnisotropicPlasticityDG3DMaterialLaw(const int num, std::string lawType, const double rho,
+                                   double E, const double nu, const J2IsotropicHardening &_j2IH,
+                                   const double tol,const bool matrixBypert, const double tolPert) :
+                                   dG3DMaterialLaw(num,rho,true)
+{
+  fillElasticStiffness(E, nu, elasticStiffness);
+  if (lawType=="J2")
+  {
+    _anisoLaw = new mlawAnisotropicPlasticityJ2(num,E,nu,rho,_j2IH,tol,matrixBypert,tolPert);
+  }
+  else if (lawType == "Hill48")
+  {
+    _anisoLaw = new mlawAnisotropicPlasticityHill48(num,E,nu,rho,_j2IH,tol,matrixBypert,tolPert);
+  }
+  else
+  {
+    Msg::Error("law type %s has not been implemented !!!", lawType.c_str());
+  }
+}
+
+void AnisotropicPlasticityDG3DMaterialLaw::setStrainOrder(const int order){
+  _anisoLaw->setStrainOrder(order);
+};
+
+void AnisotropicPlasticityDG3DMaterialLaw::setStressFormulation(int s)
+{
+  _anisoLaw->setStressFormulation(s);
+};
+
+void AnisotropicPlasticityDG3DMaterialLaw::setYieldParameters(const std::vector<double>& vals)
+{
+  _anisoLaw->setYieldParameters(vals);
+}
+
+AnisotropicPlasticityDG3DMaterialLaw::AnisotropicPlasticityDG3DMaterialLaw(const AnisotropicPlasticityDG3DMaterialLaw &source) : 
+        dG3DMaterialLaw(source)
+{
+  _anisoLaw = NULL;
+  if (source._anisoLaw != NULL)
+  {
+    _anisoLaw = dynamic_cast<mlawAnisotropicPlasticity*>(source._anisoLaw->clone());
+  }
+}
+AnisotropicPlasticityDG3DMaterialLaw::~AnisotropicPlasticityDG3DMaterialLaw()
+{
+  if (_anisoLaw!=NULL)
+  {
+    delete _anisoLaw; 
+    _anisoLaw = NULL;
+  }
+}
+
+
+void AnisotropicPlasticityDG3DMaterialLaw::createIPState(IPStateBase* &ips, bool hasBodyForce, const bool* state_,const MElement *ele, const int nbFF_, const IntPt *GP, const int gpt) const
+{
+  // check interface element
+  bool inter=true;
+  const MInterfaceElement *iele = dynamic_cast<const MInterfaceElement*>(ele);
+  if(iele==NULL) inter=false;
+  IPVariable* ipvi = new  AnisotropicPlasticityDG3DIPVariable(*_anisoLaw,hasBodyForce,inter);
+  IPVariable* ipv1 = new  AnisotropicPlasticityDG3DIPVariable(*_anisoLaw,hasBodyForce,inter);
+  IPVariable* ipv2 = new  AnisotropicPlasticityDG3DIPVariable(*_anisoLaw,hasBodyForce,inter);
+  if(ips != NULL) delete ips;
+  ips = new IP3State(state_,ipvi,ipv1,ipv2);
+}
+
+void AnisotropicPlasticityDG3DMaterialLaw::createIPVariable(IPVariable* &ipv, bool hasBodyForce, const MElement *ele, const int nbFF_, const IntPt *GP, const int gpt) const
+{
+  if(ipv !=NULL) delete ipv;
+  bool inter=true;
+  const MInterfaceElement *iele = dynamic_cast<const MInterfaceElement*>(ele);
+  if(iele == NULL){
+    inter=false;
+  }
+  ipv = new  AnisotropicPlasticityDG3DIPVariable(*_anisoLaw,hasBodyForce,inter);
+}
+
+void AnisotropicPlasticityDG3DMaterialLaw::checkInternalState(IPVariable* ipv, const IPVariable* ipvp) const{
+    /* get ipvariable */
+  AnisotropicPlasticityDG3DIPVariable* ipvcur;
+  const AnisotropicPlasticityDG3DIPVariable* ipvprev;
+  FractureCohesive3DIPVariable* ipvtmp = dynamic_cast<FractureCohesive3DIPVariable*>(ipv);
+  if(ipvtmp !=NULL)
+  {
+
+    ipvcur = static_cast<AnisotropicPlasticityDG3DIPVariable*>(ipvtmp->getIPvBulk());
+    const FractureCohesive3DIPVariable *ipvtmp2 = static_cast<const FractureCohesive3DIPVariable*>(ipvp);
+    ipvprev = static_cast<const AnisotropicPlasticityDG3DIPVariable*>(ipvtmp2->getIPvBulk());
+   }
+  else
+  {
+    ipvcur = static_cast<AnisotropicPlasticityDG3DIPVariable*>(ipv);
+    ipvprev = static_cast<const AnisotropicPlasticityDG3DIPVariable*>(ipvp);
+  }
+  _anisoLaw->checkInternalState(ipvcur->getInternalData(), ipvprev->getInternalData());
+
+};
+
+void AnisotropicPlasticityDG3DMaterialLaw::stress(IPVariable* ipv, const IPVariable* ipvp, const bool stiff, const bool checkfrac, const bool dTangent)
+{
+  /* get ipvariable */
+  AnisotropicPlasticityDG3DIPVariable* ipvcur;
+  const AnisotropicPlasticityDG3DIPVariable* ipvprev;
+  FractureCohesive3DIPVariable* ipvtmp = dynamic_cast<FractureCohesive3DIPVariable*>(ipv);
+  if(ipvtmp !=NULL)
+  {
+
+    ipvcur = static_cast<AnisotropicPlasticityDG3DIPVariable*>(ipvtmp->getIPvBulk());
+    const FractureCohesive3DIPVariable *ipvtmp2 = static_cast<const FractureCohesive3DIPVariable*>(ipvp);
+    ipvprev = static_cast<const AnisotropicPlasticityDG3DIPVariable*>(ipvtmp2->getIPvBulk());
+   }
+  else
+  {
+    ipvcur = static_cast<AnisotropicPlasticityDG3DIPVariable*>(ipv);
+    ipvprev = static_cast<const AnisotropicPlasticityDG3DIPVariable*>(ipvp);
+  }
+
+  /* strain xyz */
+  const STensor3& F1 = ipvcur->getConstRefToDeformationGradient();
+  const STensor3& F0 = ipvprev->getConstRefToDeformationGradient();
+
+  /* data for J2 law */
+  IPAnisotropicPlasticity* q1 = ipvcur->getIPAnisotropicPlasticity();
+  const IPAnisotropicPlasticity* q0 = ipvprev->getIPAnisotropicPlasticity();
+
+  STensor43& elasticL = ipvcur->getRefToElasticTangentModuli();
+  //static STensor63 dCalgdeps;
+
+  /* compute stress */
+  _anisoLaw->constitutive(F0,F1,ipvcur->getRefToFirstPiolaKirchhoffStress(),q0,q1,ipvcur->getRefToTangentModuli(),stiff,&elasticL,dTangent,ipvcur->getPtrTodCmdFm());
+
+  ipvcur->setRefToDGElasticTangentModuli(this->elasticStiffness);
+}
+//
+
+
+
 J2LinearDG3DMaterialLaw::J2LinearDG3DMaterialLaw(const int num,const double rho,
                                    double E,const double nu,const double sy0,const double h,
                                    const double tol, const bool matrixBypert, const double tolPert) : dG3DMaterialLaw(num,rho,true),
@@ -3334,6 +3546,7 @@ void J2LinearDG3DMaterialLaw::stress(IPVariable* ipv, const IPVariable* ipvp, co
 
   ipvcur->setRefToDGElasticTangentModuli(this->elasticStiffness);
 }
+//
 
 //
 
@@ -4054,7 +4267,7 @@ void EOSDG3DMaterialLaw::createIPState(IPStateBase* &ips, bool hasBodyForce, con
     dG3DMaterialLaw *DG3Dit = dynamic_cast<dG3DMaterialLaw*>(maplaw.begin()->second);
     materialLaw::matname mlaw_dev = DG3Dit->getType();
 
-    if(mlaw_dev == materialLaw::j2linear )//J2linear
+    if(mlaw_dev == materialLaw::J2 )//J2linear
     {
         J2LinearDG3DMaterialLaw *DG3DJ2linearit = dynamic_cast<J2LinearDG3DMaterialLaw*>(DG3Dit);
         bool inter=true;
@@ -4098,7 +4311,7 @@ void EOSDG3DMaterialLaw::createIPVariable(IPVariable* &ipv, bool hasBodyForce, c
         dG3DMaterialLaw *DG3Dit = dynamic_cast<dG3DMaterialLaw*>(maplaw.begin()->second);
         matname mlaw_dev = DG3Dit->getType();
 
-        if(mlaw_dev == materialLaw::j2linear)//J2linear
+        if(mlaw_dev == materialLaw::J2)//J2linear
         {
             J2LinearDG3DMaterialLaw *DG3DJ2linearit = dynamic_cast<J2LinearDG3DMaterialLaw*>(DG3Dit);
             bool inter=true;
@@ -4150,7 +4363,7 @@ void EOSDG3DMaterialLaw::stress(IPVariable* ipv, const IPVariable* ipvp, const b
     STensor3 Fdot(0.);
 //    STensor43 ViselasticStiff(0.);
 
-    if(mlaw_dev == materialLaw::j2linear) //J2linear
+    if(mlaw_dev == materialLaw::J2) //J2linear
     {
         J2LinearDG3DMaterialLaw *DG3DJ2linearit = dynamic_cast<J2LinearDG3DMaterialLaw*>(DG3Dit);
         IPJ2linear *J2linearipv = dynamic_cast<IPJ2linear*>(IPeosCUR->_IPV);
diff --git a/dG3D/src/dG3DMaterialLaw.h b/dG3D/src/dG3DMaterialLaw.h
index d7a115343c9e977626761559d7336e260df6f35c..98679f8d158fa6e96d613da3317af4f6a413ede8 100644
--- a/dG3D/src/dG3DMaterialLaw.h
+++ b/dG3D/src/dG3DMaterialLaw.h
@@ -467,6 +467,53 @@ class ANNBasedDG3DMaterialLaw : public dG3DMaterialLaw{
     #endif //SWIG
 };
 
+class ExtraVariablesAtGaussPoints
+{
+    bool filled;
+    std::vector<SVector3> locations;
+    std::vector< std::vector<double> > field;
+    std::map <int,int> _storeExtraInputAtGp; //map between location in torch input and stored location in _extraVariablesAtGaussPoints
+  public:
+    ExtraVariablesAtGaussPoints():filled(false), field(),  _storeExtraInputAtGp() {}
+    ExtraVariablesAtGaussPoints(const ExtraVariablesAtGaussPoints& src):filled(src.filled), locations(src.locations), field(src.field),  
+                           _storeExtraInputAtGp(src._storeExtraInputAtGp) {}
+    ExtraVariablesAtGaussPoints& operator = (const ExtraVariablesAtGaussPoints& src)
+    {
+      filled=src.filled; locations=src.locations; field=src.field;  _storeExtraInputAtGp=src._storeExtraInputAtGp;
+      return *this;
+    }
+    ~ExtraVariablesAtGaussPoints(){}
+    void fill(const std::string fname);
+    const std::vector<double> &getFieldAtClosestLocation(const SVector3 &gp) const;  
+    void print() const;
+    void fillExtraInputAtGp(int nb1, int nb2)
+    {
+      if(_storeExtraInputAtGp.find(nb1) == _storeExtraInputAtGp.end())
+        _storeExtraInputAtGp[nb1]=nb2;
+      else
+        Msg::Error("ExtraVariablesAtGaussPoints::fillExtraInputAtGp already defined");
+    }
+    bool isStored(int nb1) const
+    {
+      if(_storeExtraInputAtGp.find(nb1) == _storeExtraInputAtGp.end())
+        return false;
+      else
+        return true;
+    }
+    double returnFieldAtClosestLocation(int nb1, const SVector3 &gp) const
+    {
+      if(!isStored(nb1))
+        Msg::Error("ExtraVariablesAtGaussPoints::returnFieldAtClosestLocation field %d is not to be stored",nb1);
+      std::map <int,int>::const_iterator it=_storeExtraInputAtGp.find(nb1);
+      const std::vector<double> & field=getFieldAtClosestLocation(gp);
+      if(it->second>field.size())
+        Msg::Error("ExtraVariablesAtGaussPoints::returnFieldAtClosestLocation field %d is not stored at location %d",nb1,it->second);
+      return field[it->second];
+    }
+
+};
+
+
 class torchANNBasedDG3DMaterialLaw : public dG3DMaterialLaw{
   public:
     enum KinematicInput{EGL=1,U=2,smallStrain=3,EGLInc=4,UInc=5,smallStrainInc=6};  // EGL - Green Lagraneg strain, U-Biot strain, smallStrain=small strain; Inc for increments
@@ -475,19 +522,14 @@ class torchANNBasedDG3DMaterialLaw : public dG3DMaterialLaw{
     int _numberOfInput;
     int _numberOfInternalVariables;
     double _initialValue_h;
+    int _time_arg; // If one of the extra variables is time, store its position in the array. @Mohib
     bool _NeedExtraNorm;
-    int _numberOfExtraInput; // number of additional inputs other than 6 (or 3 for 2D) strain components @Mohib
+    int _numberOfExtraInput; // Number of additional inputs other than 6 (or 3 for 2D) strain components @Mohib
     std::vector<double> _initialValue_ExtraInput; // initial values for the extra inputs @Mohib
     std::vector<double> _normParams_ExtraInput; // Container for additional inputs, it is needed for  normalization @Mohib
-
-    // @Mohib TODO: Remove b4 commit Retundent
-    //std::vector<double> _extra_inp;
-    // Lattice Parameters for Optimizer IO @Mohib
-    // TODO: Read from ipvariable.
-
-    //    double _latticeRadius;
-    //    double _pTime;
-    //    double _cTime;
+    std::string _fileExtraInputsGp;
+    ExtraVariablesAtGaussPoints _extraVariablesAtGaussPoints;
+    double _ctime; // variable for storing current time @Mohib
 
 #if defined(HAVE_TORCH)
     torch::jit::script::Module module;
@@ -550,20 +592,31 @@ class torchANNBasedDG3DMaterialLaw : public dG3DMaterialLaw{
 
 
         void setInitialHValue(double initialValue_h) {_initialValue_h=initialValue_h;};
-
         // Setter for no of Extra Input Parameters @Mohib
         void setNumExtraInput(const int value);
-        // Setter for init values of Extra Input Parameters @Mohib
+        // Setter for storing time position (arg) in the extra array @Mohib
+        void setTimeArg(const int value);
+        // Setter for init values of Extra Inputs @Mohib
         void setInitialExtraInput(const double value);
-        // @Mohib TODO:Remove b4 commit
-        //// Setter for Lattice Parameters @Mohib
-        //void setLatticeParameters(const double radius, const double size);
+        // Setter for storing norm params of Extra Inputs @Mohib
         void setNormExtraInp(const double mean, const double std);
-        // @Mohib TODO:Remove b4 commit
-        // Setter for extra inputs, populates the _extra_inp vector with normalization parameters
-        //void setExtraInp(const double mean, const double std);
-        //void setInitTime(const double curr_t);
 
+
+
+        void setFileExtraInputsGp(const std::string fname) 
+        {
+            _fileExtraInputsGp=fname;
+            _extraVariablesAtGaussPoints.fill(fname);
+            //_extraVariablesAtGaussPoints.print();
+            //const std::vector<double> &rf=_extraVariablesAtGaussPoints.getFieldAtClosestLocation(SVector3(25,28.873,28.873));
+            //double val=_extraVariablesAtGaussPoints.returnFieldAtClosestLocation(0,SVector3(25,28.873,28.873));
+            //Msg::Info(" Field 0 at GP is %f",val);
+        }
+
+        void fillExtraInputAtGp(int nb1, int nb2)
+        {
+           _extraVariablesAtGaussPoints.fillExtraInputAtGp(nb1,nb2);
+        }
     #ifndef SWIG
 		torchANNBasedDG3DMaterialLaw(const torchANNBasedDG3DMaterialLaw& src);
 		virtual ~torchANNBasedDG3DMaterialLaw();
@@ -663,6 +716,54 @@ class J2SmallStrainDG3DMaterialLaw : public dG3DMaterialLaw
  #endif // SWIG
 };
 
+class AnisotropicPlasticityDG3DMaterialLaw : public dG3DMaterialLaw
+{
+ protected:
+    mlawAnisotropicPlasticity* _anisoLaw;
+  
+ public:
+
+    AnisotropicPlasticityDG3DMaterialLaw(const int num, std::string lawType, const double rho,
+                   double E,const double nu,const J2IsotropicHardening &_j2IH,const double tol=1.e-6,
+                   const bool matrixBypert=false, const double tolPert=1e-8);
+    void setStrainOrder(const int order);
+    void setStressFormulation(int s);
+    void setYieldParameters(const std::vector<double>& vals);
+    #ifndef SWIG
+    AnisotropicPlasticityDG3DMaterialLaw(const AnisotropicPlasticityDG3DMaterialLaw &source);
+    virtual ~AnisotropicPlasticityDG3DMaterialLaw();
+    
+    // set the time of _anisoLaw
+     virtual void setTime(const double t,const double dtime){
+      dG3DMaterialLaw::setTime(t,dtime);
+      _anisoLaw->setTime(t,dtime);
+    }
+    virtual materialLaw::matname getType() const {return _anisoLaw->getType();}
+    virtual void createIPState(IPStateBase* &ips, bool hasBodyForce, const bool* state_=NULL,const MElement *ele=NULL, const int nbFF_=0, const IntPt *GP=NULL, const int gpt = 0) const;
+    virtual void createIPVariable(IPVariable* &ipv, bool hasBodyForce, const MElement *ele, const int nbFF_, const IntPt *GP, const int gpt) const;
+    virtual void initLaws(const std::map<int,materialLaw*> &maplaw){}
+    virtual double soundSpeed() const{return _anisoLaw->soundSpeed();} // or change value ??
+    virtual void stress(IPVariable*ipv, const IPVariable*ipvprev, const bool stiff=true, const bool checkfrac=true, const bool dTangent=false);
+    virtual const double bulkModulus() const {return _anisoLaw->bulkModulus();}
+    virtual double scaleFactor() const{return _anisoLaw->scaleFactor();}
+    virtual materialLaw* clone() const{return new AnisotropicPlasticityDG3DMaterialLaw(*this);};
+    virtual void checkInternalState(IPVariable* ipv, const IPVariable* ipvprev) const;
+    virtual bool withEnergyDissipation() const {return _anisoLaw->withEnergyDissipation();};
+    virtual void setMacroSolver(const nonLinearMechSolver* sv){
+      dG3DMaterialLaw::setMacroSolver(sv);
+      _anisoLaw->setMacroSolver(sv);
+    };
+    virtual const materialLaw *getConstNonLinearSolverMaterialLaw() const
+    {
+      return _anisoLaw;
+    }
+    virtual materialLaw *getNonLinearSolverMaterialLaw()
+    {
+      return _anisoLaw;
+    }
+   #endif // SWIG
+};
+
 class J2LinearDG3DMaterialLaw : public dG3DMaterialLaw
 {
     friend class EOSDG3DMaterialLaw;