Chain.smali
.class public Landroidx/constraintlayout/solver/widgets/Chain;
.super Ljava/lang/Object;
.source "Chain.java"
# static fields
.field public static final DEBUG:Z
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method public constructor <init>()V
.registers 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static applyChainConstraints(Landroidx/constraintlayout/solver/widgets/ConstraintWidgetContainer;Landroidx/constraintlayout/solver/LinearSystem;I)V
.registers 8
const/4 v0, 0x0
if-nez p2, :cond_b
iget v1, p0, Landroidx/constraintlayout/solver/widgets/ConstraintWidgetContainer;->mHorizontalChainsSize:I
iget-object v2, p0, Landroidx/constraintlayout/solver/widgets/ConstraintWidgetContainer;->mHorizontalChainsArray:[Landroidx/constraintlayout/solver/widgets/ChainHead;
move-object v3, v2
move v2, v1
const/4 v1, 0x0
goto :goto_10
:cond_b
const/4 v1, 0x2
iget v2, p0, Landroidx/constraintlayout/solver/widgets/ConstraintWidgetContainer;->mVerticalChainsSize:I
iget-object v3, p0, Landroidx/constraintlayout/solver/widgets/ConstraintWidgetContainer;->mVerticalChainsArray:[Landroidx/constraintlayout/solver/widgets/ChainHead;
:goto_10
if-ge v0, v2, :cond_1d
aget-object v4, v3, v0
invoke-virtual {v4}, Landroidx/constraintlayout/solver/widgets/ChainHead;->define()V
invoke-static {p0, p1, p2, v1, v4}, Landroidx/constraintlayout/solver/widgets/Chain;->applyChainConstraints(Landroidx/constraintlayout/solver/widgets/ConstraintWidgetContainer;Landroidx/constraintlayout/solver/LinearSystem;IILandroidx/constraintlayout/solver/widgets/ChainHead;)V
add-int/lit8 v0, v0, 0x1
goto :goto_10
:cond_1d
return-void
.end method
.method public static applyChainConstraints(Landroidx/constraintlayout/solver/widgets/ConstraintWidgetContainer;Landroidx/constraintlayout/solver/LinearSystem;IILandroidx/constraintlayout/solver/widgets/ChainHead;)V
.registers 42
move-object/from16 v0, p0
move-object/from16 v9, p1
move-object/from16 v1, p4
iget-object v10, v1, Landroidx/constraintlayout/solver/widgets/ChainHead;->mFirst:Landroidx/constraintlayout/solver/widgets/ConstraintWidget;
iget-object v11, v1, Landroidx/constraintlayout/solver/widgets/ChainHead;->mLast:Landroidx/constraintlayout/solver/widgets/ConstraintWidget;
iget-object v12, v1, Landroidx/constraintlayout/solver/widgets/ChainHead;->mFirstVisibleWidget:Landroidx/constraintlayout/solver/widgets/ConstraintWidget;
iget-object v13, v1, Landroidx/constraintlayout/solver/widgets/ChainHead;->mLastVisibleWidget:Landroidx/constraintlayout/solver/widgets/ConstraintWidget;
iget-object v2, v1, Landroidx/constraintlayout/solver/widgets/ChainHead;->mHead:Landroidx/constraintlayout/solver/widgets/ConstraintWidget;
iget v3, v1, Landroidx/constraintlayout/solver/widgets/ChainHead;->mTotalWeight:F
iget-object v4, v1, Landroidx/constraintlayout/solver/widgets/ChainHead;->mFirstMatchConstraintWidget:Landroidx/constraintlayout/solver/widgets/ConstraintWidget;
iget-object v4, v1, Landroidx/constraintlayout/solver/widgets/ChainHead;->mLastMatchConstraintWidget:Landroidx/constraintlayout/solver/widgets/ConstraintWidget;
iget-object v4, v0, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->mListDimensionBehaviors:[Landroidx/constraintlayout/solver/widgets/ConstraintWidget$DimensionBehaviour;
aget-object v4, v4, p2
sget-object v5, Landroidx/constraintlayout/solver/widgets/ConstraintWidget$DimensionBehaviour;->WRAP_CONTENT:Landroidx/constraintlayout/solver/widgets/ConstraintWidget$DimensionBehaviour;
const/4 v7, 0x1
if-ne v4, v5, :cond_21
const/4 v4, 0x1
goto :goto_22
:cond_21
const/4 v4, 0x0
:goto_22
const/4 v5, 0x2
if-nez p2, :cond_38
iget v8, v2, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->mHorizontalChainStyle:I
if-nez v8, :cond_2b
const/4 v8, 0x1
goto :goto_2c
:cond_2b
const/4 v8, 0x0
:goto_2c
iget v14, v2, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->mHorizontalChainStyle:I
if-ne v14, v7, :cond_32
const/4 v14, 0x1
goto :goto_33
:cond_32
const/4 v14, 0x0
:goto_33
iget v15, v2, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->mHorizontalChainStyle:I
if-ne v15, v5, :cond_4c
goto :goto_4a
:cond_38
iget v8, v2, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->mVerticalChainStyle:I
if-nez v8, :cond_3e
const/4 v8, 0x1
goto :goto_3f
:cond_3e
const/4 v8, 0x0
:goto_3f
iget v14, v2, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->mVerticalChainStyle:I
if-ne v14, v7, :cond_45
const/4 v14, 0x1
goto :goto_46
:cond_45
const/4 v14, 0x0
:goto_46
iget v15, v2, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->mVerticalChainStyle:I
if-ne v15, v5, :cond_4c
:goto_4a
const/4 v5, 0x1
goto :goto_4d
:cond_4c
const/4 v5, 0x0
:goto_4d
move-object v7, v10
move v15, v14
move v14, v8
const/4 v8, 0x0
:goto_51
const/16 v21, 0x0
if-nez v8, :cond_12f
iget-object v6, v7, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->mListAnchors:[Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;
aget-object v6, v6, p3
if-eqz v5, :cond_5e
const/16 v22, 0x1
goto :goto_60
:cond_5e
const/16 v22, 0x4
:goto_60
invoke-virtual {v6}, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->getMargin()I
move-result v23
move/from16 v24, v3
iget-object v3, v7, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->mListDimensionBehaviors:[Landroidx/constraintlayout/solver/widgets/ConstraintWidget$DimensionBehaviour;
aget-object v3, v3, p2
move/from16 v25, v8
sget-object v8, Landroidx/constraintlayout/solver/widgets/ConstraintWidget$DimensionBehaviour;->MATCH_CONSTRAINT:Landroidx/constraintlayout/solver/widgets/ConstraintWidget$DimensionBehaviour;
if-ne v3, v8, :cond_78
iget-object v3, v7, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->mResolvedMatchConstraintDefault:[I
aget v3, v3, p2
if-nez v3, :cond_78
const/4 v3, 0x1
goto :goto_79
:cond_78
const/4 v3, 0x0
:goto_79
iget-object v8, v6, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mTarget:Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;
if-eqz v8, :cond_85
if-eq v7, v10, :cond_85
invoke-virtual {v8}, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->getMargin()I
move-result v8
add-int v23, v23, v8
:cond_85
move/from16 v8, v23
if-eqz v5, :cond_92
if-eq v7, v10, :cond_92
if-eq v7, v12, :cond_92
move/from16 v23, v15
const/16 v22, 0x5
goto :goto_94
:cond_92
move/from16 v23, v15
:goto_94
iget-object v15, v6, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mTarget:Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;
if-eqz v15, :cond_c5
if-ne v7, v12, :cond_a7
move/from16 v26, v14
iget-object v14, v6, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mSolverVariable:Landroidx/constraintlayout/solver/SolverVariable;
iget-object v15, v15, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mSolverVariable:Landroidx/constraintlayout/solver/SolverVariable;
move-object/from16 v27, v2
const/4 v2, 0x6
invoke-virtual {v9, v14, v15, v8, v2}, Landroidx/constraintlayout/solver/LinearSystem;->addGreaterThan(Landroidx/constraintlayout/solver/SolverVariable;Landroidx/constraintlayout/solver/SolverVariable;II)V
goto :goto_b3
:cond_a7
move-object/from16 v27, v2
move/from16 v26, v14
iget-object v2, v6, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mSolverVariable:Landroidx/constraintlayout/solver/SolverVariable;
iget-object v14, v15, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mSolverVariable:Landroidx/constraintlayout/solver/SolverVariable;
const/4 v15, 0x7
invoke-virtual {v9, v2, v14, v8, v15}, Landroidx/constraintlayout/solver/LinearSystem;->addGreaterThan(Landroidx/constraintlayout/solver/SolverVariable;Landroidx/constraintlayout/solver/SolverVariable;II)V
:goto_b3
if-eqz v3, :cond_b9
if-nez v5, :cond_b9
const/4 v2, 0x5
goto :goto_bb
:cond_b9
move/from16 v2, v22
:goto_bb
iget-object v3, v6, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mSolverVariable:Landroidx/constraintlayout/solver/SolverVariable;
iget-object v6, v6, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mTarget:Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;
iget-object v6, v6, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mSolverVariable:Landroidx/constraintlayout/solver/SolverVariable;
invoke-virtual {v9, v3, v6, v8, v2}, Landroidx/constraintlayout/solver/LinearSystem;->addEquality(Landroidx/constraintlayout/solver/SolverVariable;Landroidx/constraintlayout/solver/SolverVariable;II)Landroidx/constraintlayout/solver/ArrayRow;
goto :goto_c9
:cond_c5
move-object/from16 v27, v2
move/from16 v26, v14
:goto_c9
if-eqz v4, :cond_fe
invoke-virtual {v7}, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->getVisibility()I
move-result v2
const/16 v3, 0x8
if-eq v2, v3, :cond_ed
iget-object v2, v7, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->mListDimensionBehaviors:[Landroidx/constraintlayout/solver/widgets/ConstraintWidget$DimensionBehaviour;
aget-object v2, v2, p2
sget-object v3, Landroidx/constraintlayout/solver/widgets/ConstraintWidget$DimensionBehaviour;->MATCH_CONSTRAINT:Landroidx/constraintlayout/solver/widgets/ConstraintWidget$DimensionBehaviour;
if-ne v2, v3, :cond_ed
iget-object v2, v7, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->mListAnchors:[Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;
add-int/lit8 v3, p3, 0x1
aget-object v3, v2, v3
iget-object v3, v3, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mSolverVariable:Landroidx/constraintlayout/solver/SolverVariable;
aget-object v2, v2, p3
iget-object v2, v2, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mSolverVariable:Landroidx/constraintlayout/solver/SolverVariable;
const/4 v6, 0x5
const/4 v8, 0x0
invoke-virtual {v9, v3, v2, v8, v6}, Landroidx/constraintlayout/solver/LinearSystem;->addGreaterThan(Landroidx/constraintlayout/solver/SolverVariable;Landroidx/constraintlayout/solver/SolverVariable;II)V
goto :goto_ee
:cond_ed
const/4 v8, 0x0
:goto_ee
iget-object v2, v7, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->mListAnchors:[Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;
aget-object v2, v2, p3
iget-object v2, v2, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mSolverVariable:Landroidx/constraintlayout/solver/SolverVariable;
iget-object v3, v0, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->mListAnchors:[Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;
aget-object v3, v3, p3
iget-object v3, v3, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mSolverVariable:Landroidx/constraintlayout/solver/SolverVariable;
const/4 v6, 0x7
invoke-virtual {v9, v2, v3, v8, v6}, Landroidx/constraintlayout/solver/LinearSystem;->addGreaterThan(Landroidx/constraintlayout/solver/SolverVariable;Landroidx/constraintlayout/solver/SolverVariable;II)V
:cond_fe
iget-object v2, v7, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->mListAnchors:[Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;
add-int/lit8 v3, p3, 0x1
aget-object v2, v2, v3
iget-object v2, v2, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mTarget:Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;
if-eqz v2, :cond_11d
iget-object v2, v2, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mOwner:Landroidx/constraintlayout/solver/widgets/ConstraintWidget;
iget-object v3, v2, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->mListAnchors:[Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;
aget-object v6, v3, p3
iget-object v6, v6, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mTarget:Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;
if-eqz v6, :cond_11d
aget-object v3, v3, p3
iget-object v3, v3, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mTarget:Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;
iget-object v3, v3, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mOwner:Landroidx/constraintlayout/solver/widgets/ConstraintWidget;
if-eq v3, v7, :cond_11b
goto :goto_11d
:cond_11b
move-object/from16 v21, v2
:cond_11d
:goto_11d
if-eqz v21, :cond_124
move-object/from16 v7, v21
move/from16 v8, v25
goto :goto_125
:cond_124
const/4 v8, 0x1
:goto_125
move/from16 v15, v23
move/from16 v3, v24
move/from16 v14, v26
move-object/from16 v2, v27
goto/16 :goto_51
:cond_12f
move-object/from16 v27, v2
move/from16 v24, v3
move/from16 v26, v14
move/from16 v23, v15
if-eqz v13, :cond_19a
iget-object v2, v11, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->mListAnchors:[Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;
add-int/lit8 v3, p3, 0x1
aget-object v2, v2, v3
iget-object v2, v2, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mTarget:Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;
if-eqz v2, :cond_19a
iget-object v2, v13, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->mListAnchors:[Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;
aget-object v2, v2, v3
iget-object v6, v13, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->mListDimensionBehaviors:[Landroidx/constraintlayout/solver/widgets/ConstraintWidget$DimensionBehaviour;
aget-object v6, v6, p2
sget-object v7, Landroidx/constraintlayout/solver/widgets/ConstraintWidget$DimensionBehaviour;->MATCH_CONSTRAINT:Landroidx/constraintlayout/solver/widgets/ConstraintWidget$DimensionBehaviour;
if-ne v6, v7, :cond_157
iget-object v6, v13, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->mResolvedMatchConstraintDefault:[I
aget v6, v6, p2
if-nez v6, :cond_157
const/4 v6, 0x1
goto :goto_158
:cond_157
const/4 v6, 0x0
:goto_158
if-eqz v6, :cond_170
if-nez v5, :cond_170
iget-object v6, v2, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mTarget:Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;
iget-object v7, v6, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mOwner:Landroidx/constraintlayout/solver/widgets/ConstraintWidget;
if-ne v7, v0, :cond_170
iget-object v7, v2, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mSolverVariable:Landroidx/constraintlayout/solver/SolverVariable;
iget-object v6, v6, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mSolverVariable:Landroidx/constraintlayout/solver/SolverVariable;
invoke-virtual {v2}, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->getMargin()I
move-result v8
neg-int v8, v8
const/4 v14, 0x5
invoke-virtual {v9, v7, v6, v8, v14}, Landroidx/constraintlayout/solver/LinearSystem;->addEquality(Landroidx/constraintlayout/solver/SolverVariable;Landroidx/constraintlayout/solver/SolverVariable;II)Landroidx/constraintlayout/solver/ArrayRow;
goto :goto_186
:cond_170
const/4 v14, 0x5
if-eqz v5, :cond_186
iget-object v6, v2, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mTarget:Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;
iget-object v7, v6, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mOwner:Landroidx/constraintlayout/solver/widgets/ConstraintWidget;
if-ne v7, v0, :cond_186
iget-object v7, v2, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mSolverVariable:Landroidx/constraintlayout/solver/SolverVariable;
iget-object v6, v6, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mSolverVariable:Landroidx/constraintlayout/solver/SolverVariable;
invoke-virtual {v2}, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->getMargin()I
move-result v8
neg-int v8, v8
const/4 v15, 0x4
invoke-virtual {v9, v7, v6, v8, v15}, Landroidx/constraintlayout/solver/LinearSystem;->addEquality(Landroidx/constraintlayout/solver/SolverVariable;Landroidx/constraintlayout/solver/SolverVariable;II)Landroidx/constraintlayout/solver/ArrayRow;
:cond_186
:goto_186
iget-object v6, v2, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mSolverVariable:Landroidx/constraintlayout/solver/SolverVariable;
iget-object v7, v11, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->mListAnchors:[Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;
aget-object v3, v7, v3
iget-object v3, v3, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mTarget:Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;
iget-object v3, v3, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mSolverVariable:Landroidx/constraintlayout/solver/SolverVariable;
invoke-virtual {v2}, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->getMargin()I
move-result v2
neg-int v2, v2
const/4 v7, 0x6
invoke-virtual {v9, v6, v3, v2, v7}, Landroidx/constraintlayout/solver/LinearSystem;->addLowerThan(Landroidx/constraintlayout/solver/SolverVariable;Landroidx/constraintlayout/solver/SolverVariable;II)V
goto :goto_19b
:cond_19a
const/4 v14, 0x5
:goto_19b
if-eqz v4, :cond_1b5
iget-object v0, v0, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->mListAnchors:[Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;
add-int/lit8 v2, p3, 0x1
aget-object v0, v0, v2
iget-object v0, v0, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mSolverVariable:Landroidx/constraintlayout/solver/SolverVariable;
iget-object v3, v11, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->mListAnchors:[Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;
aget-object v4, v3, v2
iget-object v4, v4, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mSolverVariable:Landroidx/constraintlayout/solver/SolverVariable;
aget-object v2, v3, v2
invoke-virtual {v2}, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->getMargin()I
move-result v2
const/4 v3, 0x7
invoke-virtual {v9, v0, v4, v2, v3}, Landroidx/constraintlayout/solver/LinearSystem;->addGreaterThan(Landroidx/constraintlayout/solver/SolverVariable;Landroidx/constraintlayout/solver/SolverVariable;II)V
:cond_1b5
iget-object v0, v1, Landroidx/constraintlayout/solver/widgets/ChainHead;->mWeightedMatchConstraintsWidgets:Ljava/util/ArrayList;
if-eqz v0, :cond_265
invoke-virtual {v0}, Ljava/util/ArrayList;->size()I
move-result v2
const/4 v3, 0x1
if-le v2, v3, :cond_265
iget-boolean v4, v1, Landroidx/constraintlayout/solver/widgets/ChainHead;->mHasUndefinedWeights:Z
if-eqz v4, :cond_1cc
iget-boolean v4, v1, Landroidx/constraintlayout/solver/widgets/ChainHead;->mHasComplexMatchWeights:Z
if-nez v4, :cond_1cc
iget v4, v1, Landroidx/constraintlayout/solver/widgets/ChainHead;->mWidgetsMatchCount:I
int-to-float v4, v4
goto :goto_1ce
:cond_1cc
move/from16 v4, v24
:goto_1ce
const/4 v6, 0x0
move-object/from16 v7, v21
const/4 v8, 0x0
const/16 v29, 0x0
:goto_1d4
if-ge v8, v2, :cond_265
invoke-virtual {v0, v8}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v15
check-cast v15, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;
iget-object v3, v15, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->mWeight:[F
aget v3, v3, p2
cmpg-float v18, v3, v6
if-gez v18, :cond_201
iget-boolean v3, v1, Landroidx/constraintlayout/solver/widgets/ChainHead;->mHasComplexMatchWeights:Z
if-eqz v3, :cond_1fc
iget-object v3, v15, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->mListAnchors:[Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;
add-int/lit8 v15, p3, 0x1
aget-object v15, v3, v15
iget-object v15, v15, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mSolverVariable:Landroidx/constraintlayout/solver/SolverVariable;
aget-object v3, v3, p3
iget-object v3, v3, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mSolverVariable:Landroidx/constraintlayout/solver/SolverVariable;
const/4 v6, 0x0
const/4 v14, 0x4
invoke-virtual {v9, v15, v3, v6, v14}, Landroidx/constraintlayout/solver/LinearSystem;->addEquality(Landroidx/constraintlayout/solver/SolverVariable;Landroidx/constraintlayout/solver/SolverVariable;II)Landroidx/constraintlayout/solver/ArrayRow;
const/4 v6, 0x7
const/4 v14, 0x0
goto :goto_217
:cond_1fc
const/4 v14, 0x4
const/high16 v3, 0x3f800000 # 1.0f
const/4 v6, 0x0
goto :goto_202
:cond_201
const/4 v14, 0x4
:goto_202
cmpl-float v18, v3, v6
if-nez v18, :cond_21c
iget-object v3, v15, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->mListAnchors:[Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;
add-int/lit8 v15, p3, 0x1
aget-object v15, v3, v15
iget-object v15, v15, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mSolverVariable:Landroidx/constraintlayout/solver/SolverVariable;
aget-object v3, v3, p3
iget-object v3, v3, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mSolverVariable:Landroidx/constraintlayout/solver/SolverVariable;
const/4 v6, 0x7
const/4 v14, 0x0
invoke-virtual {v9, v15, v3, v14, v6}, Landroidx/constraintlayout/solver/LinearSystem;->addEquality(Landroidx/constraintlayout/solver/SolverVariable;Landroidx/constraintlayout/solver/SolverVariable;II)Landroidx/constraintlayout/solver/ArrayRow;
:goto_217
move-object/from16 v24, v0
move/from16 v17, v2
goto :goto_25a
:cond_21c
const/4 v6, 0x7
const/4 v14, 0x0
if-eqz v7, :cond_253
iget-object v7, v7, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->mListAnchors:[Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;
aget-object v6, v7, p3
iget-object v6, v6, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mSolverVariable:Landroidx/constraintlayout/solver/SolverVariable;
add-int/lit8 v17, p3, 0x1
aget-object v7, v7, v17
iget-object v7, v7, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mSolverVariable:Landroidx/constraintlayout/solver/SolverVariable;
iget-object v14, v15, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->mListAnchors:[Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;
move-object/from16 v24, v0
aget-object v0, v14, p3
iget-object v0, v0, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mSolverVariable:Landroidx/constraintlayout/solver/SolverVariable;
aget-object v14, v14, v17
iget-object v14, v14, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mSolverVariable:Landroidx/constraintlayout/solver/SolverVariable;
move/from16 v17, v2
invoke-virtual/range {p1 .. p1}, Landroidx/constraintlayout/solver/LinearSystem;->createRow()Landroidx/constraintlayout/solver/ArrayRow;
move-result-object v2
move-object/from16 v28, v2
move/from16 v30, v4
move/from16 v31, v3
move-object/from16 v32, v6
move-object/from16 v33, v7
move-object/from16 v34, v0
move-object/from16 v35, v14
invoke-virtual/range {v28 .. v35}, Landroidx/constraintlayout/solver/ArrayRow;->createRowEqualMatchDimensions(FFFLandroidx/constraintlayout/solver/SolverVariable;Landroidx/constraintlayout/solver/SolverVariable;Landroidx/constraintlayout/solver/SolverVariable;Landroidx/constraintlayout/solver/SolverVariable;)Landroidx/constraintlayout/solver/ArrayRow;
invoke-virtual {v9, v2}, Landroidx/constraintlayout/solver/LinearSystem;->addConstraint(Landroidx/constraintlayout/solver/ArrayRow;)V
goto :goto_257
:cond_253
move-object/from16 v24, v0
move/from16 v17, v2
:goto_257
move/from16 v29, v3
move-object v7, v15
:goto_25a
add-int/lit8 v8, v8, 0x1
move/from16 v2, v17
move-object/from16 v0, v24
const/4 v3, 0x1
const/4 v6, 0x0
const/4 v14, 0x5
goto/16 :goto_1d4
:cond_265
if-eqz v12, :cond_2ba
if-eq v12, v13, :cond_26b
if-eqz v5, :cond_2ba
:cond_26b
iget-object v0, v10, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->mListAnchors:[Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;
aget-object v0, v0, p3
iget-object v1, v11, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->mListAnchors:[Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;
add-int/lit8 v2, p3, 0x1
aget-object v1, v1, v2
iget-object v0, v0, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mTarget:Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;
if-eqz v0, :cond_27d
iget-object v0, v0, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mSolverVariable:Landroidx/constraintlayout/solver/SolverVariable;
move-object v3, v0
goto :goto_27f
:cond_27d
move-object/from16 v3, v21
:goto_27f
iget-object v0, v1, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mTarget:Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;
if-eqz v0, :cond_287
iget-object v0, v0, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mSolverVariable:Landroidx/constraintlayout/solver/SolverVariable;
move-object v5, v0
goto :goto_289
:cond_287
move-object/from16 v5, v21
:goto_289
iget-object v0, v12, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->mListAnchors:[Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;
aget-object v0, v0, p3
iget-object v1, v13, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->mListAnchors:[Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;
aget-object v1, v1, v2
if-eqz v3, :cond_4dd
if-eqz v5, :cond_4dd
if-nez p2, :cond_29c
move-object/from16 v2, v27
iget v2, v2, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->mHorizontalBiasPercent:F
goto :goto_2a0
:cond_29c
move-object/from16 v2, v27
iget v2, v2, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->mVerticalBiasPercent:F
:goto_2a0
move v4, v2
invoke-virtual {v0}, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->getMargin()I
move-result v6
invoke-virtual {v1}, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->getMargin()I
move-result v7
iget-object v2, v0, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mSolverVariable:Landroidx/constraintlayout/solver/SolverVariable;
iget-object v8, v1, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mSolverVariable:Landroidx/constraintlayout/solver/SolverVariable;
const/4 v10, 0x5
move-object/from16 v0, p1
move-object v1, v2
move-object v2, v3
move v3, v6
move-object v6, v8
move v8, v10
invoke-virtual/range {v0 .. v8}, Landroidx/constraintlayout/solver/LinearSystem;->addCentering(Landroidx/constraintlayout/solver/SolverVariable;Landroidx/constraintlayout/solver/SolverVariable;IFLandroidx/constraintlayout/solver/SolverVariable;Landroidx/constraintlayout/solver/SolverVariable;II)V
goto/16 :goto_4dd
:cond_2ba
if-eqz v26, :cond_3b2
if-eqz v12, :cond_3b2
iget v0, v1, Landroidx/constraintlayout/solver/widgets/ChainHead;->mWidgetsMatchCount:I
if-lez v0, :cond_2c9
iget v1, v1, Landroidx/constraintlayout/solver/widgets/ChainHead;->mWidgetsCount:I
if-ne v1, v0, :cond_2c9
const/16 v16, 0x1
goto :goto_2cb
:cond_2c9
const/16 v16, 0x0
:goto_2cb
move-object v14, v12
move-object v15, v14
:goto_2cd
if-eqz v14, :cond_4dd
iget-object v0, v14, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->mNextChainWidget:[Landroidx/constraintlayout/solver/widgets/ConstraintWidget;
aget-object v0, v0, p2
move-object v8, v0
:goto_2d4
if-eqz v8, :cond_2e3
invoke-virtual {v8}, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->getVisibility()I
move-result v0
const/16 v6, 0x8
if-ne v0, v6, :cond_2e5
iget-object v0, v8, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->mNextChainWidget:[Landroidx/constraintlayout/solver/widgets/ConstraintWidget;
aget-object v8, v0, p2
goto :goto_2d4
:cond_2e3
const/16 v6, 0x8
:cond_2e5
if-nez v8, :cond_2f2
if-ne v14, v13, :cond_2ea
goto :goto_2f2
:cond_2ea
move-object/from16 v17, v8
const/16 v19, 0x5
const/16 v20, 0x7
goto/16 :goto_3a5
:cond_2f2
:goto_2f2
iget-object v0, v14, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->mListAnchors:[Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;
aget-object v0, v0, p3
iget-object v1, v0, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mSolverVariable:Landroidx/constraintlayout/solver/SolverVariable;
iget-object v2, v0, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mTarget:Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;
if-eqz v2, :cond_2ff
iget-object v2, v2, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mSolverVariable:Landroidx/constraintlayout/solver/SolverVariable;
goto :goto_301
:cond_2ff
move-object/from16 v2, v21
:goto_301
if-eq v15, v14, :cond_30c
iget-object v2, v15, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->mListAnchors:[Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;
add-int/lit8 v3, p3, 0x1
aget-object v2, v2, v3
iget-object v2, v2, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mSolverVariable:Landroidx/constraintlayout/solver/SolverVariable;
goto :goto_321
:cond_30c
if-ne v14, v12, :cond_321
if-ne v15, v14, :cond_321
iget-object v2, v10, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->mListAnchors:[Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;
aget-object v3, v2, p3
iget-object v3, v3, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mTarget:Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;
if-eqz v3, :cond_31f
aget-object v2, v2, p3
iget-object v2, v2, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mTarget:Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;
iget-object v2, v2, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mSolverVariable:Landroidx/constraintlayout/solver/SolverVariable;
goto :goto_321
:cond_31f
move-object/from16 v2, v21
:cond_321
:goto_321
invoke-virtual {v0}, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->getMargin()I
move-result v0
iget-object v3, v14, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->mListAnchors:[Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;
add-int/lit8 v4, p3, 0x1
aget-object v3, v3, v4
invoke-virtual {v3}, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->getMargin()I
move-result v3
if-eqz v8, :cond_343
iget-object v5, v8, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->mListAnchors:[Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;
aget-object v5, v5, p3
iget-object v7, v5, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mSolverVariable:Landroidx/constraintlayout/solver/SolverVariable;
iget-object v6, v14, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->mListAnchors:[Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;
aget-object v6, v6, v4
iget-object v6, v6, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mSolverVariable:Landroidx/constraintlayout/solver/SolverVariable;
move-object/from16 v36, v7
move-object v7, v6
move-object/from16 v6, v36
goto :goto_356
:cond_343
iget-object v5, v11, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->mListAnchors:[Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;
aget-object v5, v5, v4
iget-object v5, v5, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mTarget:Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;
if-eqz v5, :cond_34e
iget-object v6, v5, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mSolverVariable:Landroidx/constraintlayout/solver/SolverVariable;
goto :goto_350
:cond_34e
move-object/from16 v6, v21
:goto_350
iget-object v7, v14, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->mListAnchors:[Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;
aget-object v7, v7, v4
iget-object v7, v7, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mSolverVariable:Landroidx/constraintlayout/solver/SolverVariable;
:goto_356
if-eqz v5, :cond_35d
invoke-virtual {v5}, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->getMargin()I
move-result v5
add-int/2addr v3, v5
:cond_35d
if-eqz v15, :cond_368
iget-object v5, v15, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->mListAnchors:[Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;
aget-object v5, v5, v4
invoke-virtual {v5}, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->getMargin()I
move-result v5
add-int/2addr v0, v5
:cond_368
if-eqz v1, :cond_2ea
if-eqz v2, :cond_2ea
if-eqz v6, :cond_2ea
if-eqz v7, :cond_2ea
if-ne v14, v12, :cond_37a
iget-object v0, v12, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->mListAnchors:[Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;
aget-object v0, v0, p3
invoke-virtual {v0}, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->getMargin()I
move-result v0
:cond_37a
move v5, v0
if-ne v14, v13, :cond_388
iget-object v0, v13, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->mListAnchors:[Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;
aget-object v0, v0, v4
invoke-virtual {v0}, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->getMargin()I
move-result v0
move/from16 v17, v0
goto :goto_38a
:cond_388
move/from16 v17, v3
:goto_38a
if-eqz v16, :cond_38f
const/16 v18, 0x7
goto :goto_391
:cond_38f
const/16 v18, 0x5
:goto_391
const/high16 v4, 0x3f000000 # 0.5f
move-object/from16 v0, p1
move v3, v5
move-object v5, v6
const/16 v19, 0x5
const/16 v20, 0x7
move-object v6, v7
move/from16 v7, v17
move-object/from16 v17, v8
move/from16 v8, v18
invoke-virtual/range {v0 .. v8}, Landroidx/constraintlayout/solver/LinearSystem;->addCentering(Landroidx/constraintlayout/solver/SolverVariable;Landroidx/constraintlayout/solver/SolverVariable;IFLandroidx/constraintlayout/solver/SolverVariable;Landroidx/constraintlayout/solver/SolverVariable;II)V
:goto_3a5
invoke-virtual {v14}, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->getVisibility()I
move-result v0
const/16 v8, 0x8
if-eq v0, v8, :cond_3ae
move-object v15, v14
:cond_3ae
move-object/from16 v14, v17
goto/16 :goto_2cd
:cond_3b2
const/16 v8, 0x8
const/16 v20, 0x7
if-eqz v23, :cond_4dd
if-eqz v12, :cond_4dd
iget v0, v1, Landroidx/constraintlayout/solver/widgets/ChainHead;->mWidgetsMatchCount:I
if-lez v0, :cond_3c5
iget v1, v1, Landroidx/constraintlayout/solver/widgets/ChainHead;->mWidgetsCount:I
if-ne v1, v0, :cond_3c5
const/16 v16, 0x1
goto :goto_3c7
:cond_3c5
const/16 v16, 0x0
:goto_3c7
move-object v14, v12
move-object v15, v14
:goto_3c9
if-eqz v14, :cond_47f
iget-object v0, v14, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->mNextChainWidget:[Landroidx/constraintlayout/solver/widgets/ConstraintWidget;
aget-object v0, v0, p2
:goto_3cf
if-eqz v0, :cond_3dc
invoke-virtual {v0}, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->getVisibility()I
move-result v1
if-ne v1, v8, :cond_3dc
iget-object v0, v0, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->mNextChainWidget:[Landroidx/constraintlayout/solver/widgets/ConstraintWidget;
aget-object v0, v0, p2
goto :goto_3cf
:cond_3dc
if-eq v14, v12, :cond_46c
if-eq v14, v13, :cond_46c
if-eqz v0, :cond_46c
if-ne v0, v13, :cond_3e7
move-object/from16 v7, v21
goto :goto_3e8
:cond_3e7
move-object v7, v0
:goto_3e8
iget-object v0, v14, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->mListAnchors:[Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;
aget-object v0, v0, p3
iget-object v1, v0, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mSolverVariable:Landroidx/constraintlayout/solver/SolverVariable;
iget-object v2, v0, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mTarget:Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;
if-eqz v2, :cond_3f4
iget-object v2, v2, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mSolverVariable:Landroidx/constraintlayout/solver/SolverVariable;
:cond_3f4
iget-object v2, v15, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->mListAnchors:[Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;
add-int/lit8 v3, p3, 0x1
aget-object v2, v2, v3
iget-object v2, v2, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mSolverVariable:Landroidx/constraintlayout/solver/SolverVariable;
invoke-virtual {v0}, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->getMargin()I
move-result v0
iget-object v4, v14, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->mListAnchors:[Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;
aget-object v4, v4, v3
invoke-virtual {v4}, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->getMargin()I
move-result v4
if-eqz v7, :cond_41a
iget-object v5, v7, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->mListAnchors:[Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;
aget-object v5, v5, p3
iget-object v6, v5, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mSolverVariable:Landroidx/constraintlayout/solver/SolverVariable;
iget-object v8, v5, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mTarget:Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;
if-eqz v8, :cond_417
iget-object v8, v8, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mSolverVariable:Landroidx/constraintlayout/solver/SolverVariable;
goto :goto_42b
:cond_417
move-object/from16 v8, v21
goto :goto_42b
:cond_41a
iget-object v5, v13, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->mListAnchors:[Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;
aget-object v5, v5, p3
if-eqz v5, :cond_423
iget-object v6, v5, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mSolverVariable:Landroidx/constraintlayout/solver/SolverVariable;
goto :goto_425
:cond_423
move-object/from16 v6, v21
:goto_425
iget-object v8, v14, Landroidx/constraintlayout/solver/widgets/Const