def xAxis(self, leftCol, topRow, rowBelow, xParentStructuralNode, xStructuralNodes, childrenFirst, renderNow, atTop):
        if xParentStructuralNode is not None:
            parentRow = rowBelow
            noDescendants = True
            rightCol = leftCol
            widthToSpanParent = 0
            for xStructuralNode in xParentStructuralNode.childStructuralNodes:
                if not xStructuralNode.isRollUp:
                    noDescendants = False
                    isLabeled = xStructuralNode.isLabeled
                    isAbstract = (xStructuralNode.isAbstract or
                                  (xStructuralNode.childStructuralNodes and
                                   not isinstance(xStructuralNode.definitionNode, (ModelClosedDefinitionNode, ModelEuAxisCoord))))
                    isNonAbstract = not isAbstract
                    rightCol, row, width, leafNode = self.xAxis(leftCol, topRow + isLabeled, rowBelow, xStructuralNode, xStructuralNodes, # nested items before totals
                                                                childrenFirst, childrenFirst, False)
                    if parentRow < row - 1:
                        parentRow = row - 1
                    #if not leafNode: 
                    #    rightCol -= 1
                    if isNonAbstract and isLabeled:
                        width += ENTRY_WIDTH_SCREEN_UNITS # width for this label, in screen units
                    widthToSpanParent += width
                    if childrenFirst:
                        thisCol = rightCol
                    else:
                        thisCol = leftCol
                    if renderNow and isLabeled:
                        columnspan = (rightCol - leftCol + (1 if isNonAbstract else 0))
                        label = xStructuralNode.header(lang=self.lang,
                                                       returnGenLabel=isinstance(xStructuralNode.definitionNode, (ModelClosedDefinitionNode, ModelEuAxisCoord)))
                        if label != OPEN_ASPECT_ENTRY_SURROGATE:
                            xValue = leftCol-1
                            yValue = topRow-1
                            headerLabel = label if label else "         "
                            self.table.initHeaderCellValue(headerLabel,
                                                           xValue, yValue,
                                                           columnspan-1,
                                                           ((row - topRow) if leafNode else 0),
                                                           XbrlTable.TG_CENTERED,
                                                           objectId=xStructuralNode.objectId(),
                                                           isRollUp=columnspan>1 and isNonAbstract and len(xStructuralNode.childStructuralNodes)<columnspan)
                        else:
                            self.aspectEntryObjectIdsNode[xStructuralNode.aspectEntryObjectId] = xStructuralNode
                            self.aspectEntryObjectIdsCell[xStructuralNode.aspectEntryObjectId] = self.table.initHeaderCombobox(leftCol-1,
                                                                                                                               topRow-1,
                                                                                                                               values=self.aspectEntryValues(xStructuralNode),
                                                                                                                               objectId=xStructuralNode.aspectEntryObjectId,
                                                                                                                               comboboxselected=self.onAspectComboboxSelection)
                        if isNonAbstract:
                            xValue = thisCol - 1
                            for i, role in enumerate(self.colHdrNonStdRoles):
                                j = (self.dataFirstRow
                                     - len(self.colHdrNonStdRoles) + i)-1
                                self.table.initHeaderCellValue(xStructuralNode.header(role=role, lang=self.lang),
                                                         xValue,
                                                         j,
                                                         0,
                                                         0,
                                                         XbrlTable.TG_CENTERED,
                                                         objectId=xStructuralNode.objectId())
                            xStructuralNodes.append(xStructuralNode)
                    if isNonAbstract:
                        rightCol += 1
                    if renderNow and not childrenFirst:
                        self.xAxis(leftCol + (1 if isNonAbstract else 0), topRow + isLabeled, rowBelow, xStructuralNode, xStructuralNodes, childrenFirst, True, False) # render on this pass
                    leftCol = rightCol
            return (rightCol, parentRow, widthToSpanParent, noDescendants)
dataset/ETHPy150Open Arelle/Arelle/arelle/ViewWinRenderedGrid.py/ViewRenderedGrid.xAxis/swapped operands of `<`