<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Problems inserting a Table and Block then updating values in .NET Forum</title>
    <link>https://forums.autodesk.com/t5/net-forum/problems-inserting-a-table-and-block-then-updating-values/m-p/12520445#M5807</link>
    <description>&lt;P&gt;Another oddity is that UpdateLayoutBtr() is called by other parts of my code and works properly. I have an event that is triggered when an attribute on a block is edited. The end of that event handler is a call to UpdatLayoutBtr(), and it successfully updates the&amp;nbsp;&lt;STRONG&gt;Table&lt;/STRONG&gt; and&amp;nbsp;&lt;STRONG&gt;Block&lt;/STRONG&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
    <pubDate>Thu, 25 Jan 2024 17:18:15 GMT</pubDate>
    <dc:creator>nshupeFMPE3</dc:creator>
    <dc:date>2024-01-25T17:18:15Z</dc:date>
    <item>
      <title>Problems inserting a Table and Block then updating values</title>
      <link>https://forums.autodesk.com/t5/net-forum/problems-inserting-a-table-and-block-then-updating-values/m-p/12518422#M5802</link>
      <description>&lt;P&gt;I have this piece of code, that takes the&amp;nbsp;&lt;STRONG&gt;BlockTableRecord&lt;/STRONG&gt; of a&amp;nbsp;&lt;STRONG&gt;Layout&lt;/STRONG&gt;, and inserts a&amp;nbsp;&lt;STRONG&gt;Table&lt;/STRONG&gt; that is passed in, as well as inserts a new&amp;nbsp;&lt;STRONG&gt;Block&lt;/STRONG&gt; and updates&amp;nbsp;&lt;STRONG&gt;Attributes&lt;/STRONG&gt; inside the block.&lt;/P&gt;&lt;LI-CODE lang="csharp"&gt;public static void UpdateLayoutBtr(BlockTableRecord btr, Transaction tran, Table table, MyDataObject data)
{
    Point3d tableInsertPoint = table.Position;
    if (btr == null) return;

    btr.AppendEntity(table);
    tran.AddNewlyCreatedDBObject(table, true);
    //inserts MText above inserted Table
    InsertNote(btr, tran, tableInsertPoint);
    //Erases old block
    RemoveOldBlock(btr, tran);
    //finds block in block table and inserts into BTR, then updates attributes
    MyBlock.InsertNewBlock(
        btr,
        tableInsertPoint.Add(new Vector3d(2.8694, .69, 0)),
        data);
}&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="csharp"&gt;public static void InsertNewBlock(BlockTableRecord btr, Point3d insertPoint, MyDataObject data)
{
    ObjectId blockId = ObjectId.Null;
    using (Transaction tr = btr.Database.TransactionManager.StartOpenCloseTransaction())
    {
        try
        {
            blockId = Active.Database.InsertIntoBlockTableRecord(
        BlockNameCustomGrooveCount,
        insertPoint,
        layerName: "My_Layer",
        modelOrPaper: btr,
        transaction: tr);

            if (blockId == ObjectId.Null) return;
            tr.Commit();
        }
        catch (Exception ex)
        {
            Active.WriteMessage($"Error in {nameof(MyBlock)}.{nameof(InsertNewBlock)}: {ex.Message}");
            tr.Abort();
        }
    }

    if(blockId == ObjectId.Null) return;
    FillAttributes(blockId, results);
}&lt;/LI-CODE&gt;&lt;LI-CODE lang="csharp"&gt;private static void FillAttributes(ObjectId tableId, MyDataObject results)
{
    using (Transaction tr = tableId.Database.TransactionManager.StartOpenCloseTransaction())
    using(BlockReference br = tr.GetObject(tableId, OpenMode.ForWrite, false, true) as BlockReference)
    {
        if (br == null) return;
        //Format the total length of lines
        string slineLengths = Converter.DistanceToString(results.LineLength, DistanceUnitFormat.Architectural, 0);

        foreach (ObjectId attId in br.AttributeCollection)
        {
            using (AttributeReference attRef =
                   tr.GetObject(attId, OpenMode.ForWrite, false, true) as AttributeReference)
            {
                switch (attRef.Tag)
                {
                    case "Turns:": attRef.TextString = results.ArcCount.ToString(); break;
                    case "Length:": attRef.TextString = slineLengths; break;
                    default: break;
                }
            }
        }
    }
}&lt;/LI-CODE&gt;&lt;P&gt;&lt;BR /&gt;And this is the code that generates the Table that is passed in to&amp;nbsp;&lt;STRONG&gt;UpdateLayoutBtr&lt;/STRONG&gt;&lt;BR /&gt;&lt;/P&gt;&lt;LI-CODE lang="csharp"&gt;public static Table Update(Transaction tr, Layout layout, MyDataCollection tableData)
{
    if (layout == null) return null;
    ObjectIdCollection tableIds = layout.GetTableIds(Title);
    if (tableIds == null || tableIds.Count == 0) return null;

    Point3d oldPosition = Point3d.Origin;
    int oldCount = 0;
    
    using (Table oldTable = tr.GetObject(tableIds[0], OpenMode.ForWrite, false, true) as Table)
    {
        if (oldTable == null) return null;
        oldPosition = oldTable.Position;
        oldCount = oldTable.Rows.Count-3; //3 rows are Title, headers, bottom row
        oldTable.Erase();
    }
    //Point3d insertPoint = scheduleInsertPoint(tableData.Count - oldCount, oldPosition);
    Point3d insertPoint = oldPosition;
    if (insertPoint == Point3d.Origin) return null;

    
    Table tb = BuildTable(Title, HEADERS, insertPoint, tableData);
    tb.Layer = LayerName;
    tb.Color = Color.FromColorIndex(ColorMethod.ByAci, 0);

    return tb;
}&lt;/LI-CODE&gt;&lt;LI-CODE lang="csharp"&gt;public static Table BuildTable(string title, List&amp;lt;string&amp;gt; headers, Point3d insertPoint, MyDataCollection tableData)
{
    /*
         *Table gets created with default 1 row and 1 column
         * so when inserting default rows and columns, remove old row and column
         * which get pushed to the last index
         */

    Table tb = new Table();

    try
    {
        tb.Position = insertPoint;
        tb.Layer = LayerName;
        tb.TableStyle = Active.Database.Tablestyle;

       

        int titleRow = 0, headersRow = 1, totalRow = 2;


        tb.InsertColumns(0, 1.5, 4);
        tb.DeleteColumns(tb.Columns.Count - 1, 1);//deletes the default column
        tb.SetColumnWidth(1.5);
        tb.Columns[1].Width = 1.63;
        tb.Columns[2].Width = 1;


        tb.InsertRows(0, .5, 3);
        tb.DeleteRows(tb.Rows.Count - 1, 1);
        tb.SetRowHeight(.5);
        tb.Cells.TextHeight = .19;//main text height

        //Title row
        CellRange titleRange = CellRange.Create(tb, titleRow, 0, titleRow, 3);
        tb.MergeCells(titleRange);
        tb.Rows[titleRow].TextHeight = .25;//bigger title
        tb.Cells[titleRow, 0].TextString = title;

        tb.Rows[titleRow].Alignment = CellAlignment.MiddleCenter;

        //headers row
        tb.Cells[headersRow, zoneCol].TextString = "FIRST";
        tb.Cells[headersRow, manifoldCol].TextString = "SECOND";
        tb.Cells[headersRow, loopCol].TextString = "THIRD";
        tb.Cells[headersRow, lengthCol].TextString = "FOURTH";

        tb.Rows[headersRow].Alignment = CellAlignment.MiddleCenter;


        foreach (MyData data in tableData)
        {
            int row = tb.Rows.Count - 1;
            tb.InsertRows(row, .38, 1);

            tb.Cells[row, 0].SetValue(data.First, ParseOption.SetDefaultFormat);

            tb.Cells[row, 1].SetValue(data.Second, ParseOption.SetDefaultFormat);

            tb.Cells[row, 2].SetValue(data.Third, ParseOption.SetDefaultFormat);

            tb.Cells[row, 3].TextString = data.Fourth;

        }

        //total row
        int bottomRow = tb.Rows.Count - 1;

        tb.Cells[bottomRow, manifoldCol].TextString = "TOTAL";

        tb.Cells[tb.Rows.Count - 1, 3].Contents.Add();
        tb.Cells[tb.Rows.Count - 1, 3].Contents[0].Formula = "=Sum(D3:D" + (tb.Rows.Count - 1) + ")";


        tb.GenerateLayout();
    }
    catch (Exception ex)
    {
        Active.WriteMessage($"\nError in {nameof(BuildTable)}: {ex.Message}");
        return null;
    }
    return tb;
}&lt;/LI-CODE&gt;&lt;P&gt;&lt;BR /&gt;There is already a&amp;nbsp;&lt;STRONG&gt;Table&lt;/STRONG&gt; in the layout with the proper Title, which is a const string. I delete that&amp;nbsp;&lt;STRONG&gt;Table&lt;/STRONG&gt; and then insert the new one.&lt;BR /&gt;&lt;BR /&gt;So here is the weird part. If I run this code like this the&amp;nbsp;&lt;STRONG&gt;Table&lt;/STRONG&gt; gets inserted, but only has the Title, Headers, and Total rows. None of the data added in the foreach loop. Though when I'm in the debugger, I DO see the rows added. I make sure that the&amp;nbsp;&lt;STRONG&gt;Table&lt;/STRONG&gt;&amp;nbsp;getting added to the&amp;nbsp;&lt;STRONG&gt;Layout&lt;/STRONG&gt; is the same one built, and it is, with the proper amount of rows as I would expect from the data passed to the &lt;STRONG&gt;Table&lt;/STRONG&gt; builder. But once the operation ends, like I say above, the&amp;nbsp;&lt;STRONG&gt;Table&lt;/STRONG&gt; does not come out as I would expect, it does not have the data rows.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;The&amp;nbsp;&lt;STRONG&gt;Block&lt;/STRONG&gt; I insert also does not have the attributes edited.&lt;BR /&gt;&lt;BR /&gt;After so much debugging and trying weird things I came across two weird situations. If I change&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;LI-CODE lang="csharp"&gt;//Title is a readonly const string
Table tb = BuildTable(Title, HEADERS, insertPoint, tableData);&lt;/LI-CODE&gt;&lt;P&gt;to&lt;BR /&gt;&lt;/P&gt;&lt;LI-CODE lang="csharp"&gt;Table tb = BuildTable("Test", HEADERS, insertPoint, tableData);&lt;/LI-CODE&gt;&lt;P&gt;&lt;BR /&gt;Both the&amp;nbsp;&lt;STRONG&gt;Table&lt;/STRONG&gt; and&amp;nbsp;&lt;STRONG&gt;Block&lt;/STRONG&gt; come out updated in AutoCAD. This will delete the&amp;nbsp;&lt;STRONG&gt;Table&lt;/STRONG&gt; that already exists in the&amp;nbsp;&lt;STRONG&gt;Layout&lt;/STRONG&gt; with the proper Title, and replace it with a new one with a Title reading "Test".&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If I leave the&amp;nbsp;&lt;STRONG&gt;Table&lt;/STRONG&gt; title alone, back to the original. If I instead comment out appending appending and adding the new&amp;nbsp;&lt;STRONG&gt;Table&lt;/STRONG&gt;&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;LI-CODE lang="csharp"&gt;//btr.AppendEntity(table);
//tran.AddNewlyCreatedDBObject(table, true);&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The old&amp;nbsp;&lt;STRONG&gt;Table&lt;/STRONG&gt; gets deleted as expected, and the new one does not appear, which is also expected. But the&amp;nbsp;&lt;STRONG&gt;Block&lt;/STRONG&gt; will now be updated??&lt;BR /&gt;&lt;BR /&gt;I'm at a loss for what to do, any help would be greatly appreciated&lt;/P&gt;</description>
      <pubDate>Wed, 24 Jan 2024 18:37:42 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/problems-inserting-a-table-and-block-then-updating-values/m-p/12518422#M5802</guid>
      <dc:creator>nshupeFMPE3</dc:creator>
      <dc:date>2024-01-24T18:37:42Z</dc:date>
    </item>
    <item>
      <title>Re: Problems inserting a Table and Block then updating values</title>
      <link>https://forums.autodesk.com/t5/net-forum/problems-inserting-a-table-and-block-then-updating-values/m-p/12518827#M5803</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/11150561"&gt;@nshupeFMPE3&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;&lt;P&gt;I have this piece of code, that takes the&amp;nbsp;&lt;STRONG&gt;BlockTableRecord&lt;/STRONG&gt; of a&amp;nbsp;&lt;STRONG&gt;Layout&lt;/STRONG&gt;, and inserts a&amp;nbsp;&lt;STRONG&gt;Table&lt;/STRONG&gt; that is passed in, as well as inserts a new&amp;nbsp;&lt;STRONG&gt;Block&lt;/STRONG&gt; and updates&amp;nbsp;&lt;STRONG&gt;Attributes&lt;/STRONG&gt; inside the block.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;And this is the code that generates the Table that is passed in to&amp;nbsp;&lt;STRONG&gt;UpdateLayoutBtr&lt;/STRONG&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="csharp"&gt;public static Table Update(Transaction tr, Layout layout, MyDataCollection tableData)
{
...
    
    Table tb = BuildTable(Title, HEADERS, insertPoint, tableData);

}&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Your call&amp;nbsp; to BuildTable() passes the identifier 'Title' as the first argument. Where is that variable declared/assigned?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;One other thing I noticed is that you have APIs that take a Transaction as an argument,&amp;nbsp; and within the API you commit the transaction. That is not a good design pattern and can easily become the source of bugs. If you take a transaction as an argument you should use it, but not commit or abort it, because the responsibility for doing that should rest with the calling code that starts the transaction.&lt;/P&gt;&lt;HR /&gt;&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 24 Jan 2024 22:15:31 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/problems-inserting-a-table-and-block-then-updating-values/m-p/12518827#M5803</guid>
      <dc:creator>ActivistInvestor</dc:creator>
      <dc:date>2024-01-24T22:15:31Z</dc:date>
    </item>
    <item>
      <title>Re: Problems inserting a Table and Block then updating values</title>
      <link>https://forums.autodesk.com/t5/net-forum/problems-inserting-a-table-and-block-then-updating-values/m-p/12518849#M5804</link>
      <description>&lt;P&gt;Title is declared in the class containing BuildTable&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;LI-CODE lang="csharp"&gt;private const string Title = "My Table";&lt;/LI-CODE&gt;&lt;P&gt;&lt;BR /&gt;I've also made sure not to commit any transactions that are passed in as arguments, for the reasons you've mentioned.&lt;/P&gt;</description>
      <pubDate>Wed, 24 Jan 2024 22:28:06 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/problems-inserting-a-table-and-block-then-updating-values/m-p/12518849#M5804</guid>
      <dc:creator>nshupeFMPE3</dc:creator>
      <dc:date>2024-01-24T22:28:06Z</dc:date>
    </item>
    <item>
      <title>Re: Problems inserting a Table and Block then updating values</title>
      <link>https://forums.autodesk.com/t5/net-forum/problems-inserting-a-table-and-block-then-updating-values/m-p/12518871#M5805</link>
      <description>&lt;P&gt;You say that if you replace Title with a literal string, the code works as expected?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;That's odd. Have you looked at the value of 'Title' in the debugger at the point where the call to BuildTable() is made?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 24 Jan 2024 22:50:44 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/problems-inserting-a-table-and-block-then-updating-values/m-p/12518871#M5805</guid>
      <dc:creator>ActivistInvestor</dc:creator>
      <dc:date>2024-01-24T22:50:44Z</dc:date>
    </item>
    <item>
      <title>Re: Problems inserting a Table and Block then updating values</title>
      <link>https://forums.autodesk.com/t5/net-forum/problems-inserting-a-table-and-block-then-updating-values/m-p/12520413#M5806</link>
      <description>&lt;P&gt;I have looked at that.&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;The Update() method starts by finding an existing&amp;nbsp;&lt;STRONG&gt;Table&lt;/STRONG&gt; in the&amp;nbsp;&lt;STRONG&gt;Layout&lt;/STRONG&gt; and erasing it. This is does properly, using title which is a const string set to "My Table" to find the existing&amp;nbsp;&lt;STRONG&gt;Table&lt;/STRONG&gt; and delete it.&lt;BR /&gt;&lt;BR /&gt;Then Title is properly used again as a parameter passed to BuildTable(). And when I go into BuildTable() while debugging I see the title parameter with the proper value "My Table".&lt;BR /&gt;&lt;BR /&gt;I just ran this test again by doing the following. Leaving Title in use for the find and delete portion of Update(). But replacing Title the variable with "Test" a string constant for the call to BuildTable().&lt;BR /&gt;&lt;BR /&gt;BuildTable("Test", ... , ... , ... )&lt;BR /&gt;&lt;BR /&gt;Running the code this way, I see the new table and the block with its attributes updated.&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;I will note that I have run the same test as described above, but instead of using Title the variable or "Test" for the call to BuildTable(), I used the string that is assigned to Title the variable. When I do this I do not see the changes, I again have the problem with the table and block not showing their changes.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 25 Jan 2024 17:02:04 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/problems-inserting-a-table-and-block-then-updating-values/m-p/12520413#M5806</guid>
      <dc:creator>nshupeFMPE3</dc:creator>
      <dc:date>2024-01-25T17:02:04Z</dc:date>
    </item>
    <item>
      <title>Re: Problems inserting a Table and Block then updating values</title>
      <link>https://forums.autodesk.com/t5/net-forum/problems-inserting-a-table-and-block-then-updating-values/m-p/12520445#M5807</link>
      <description>&lt;P&gt;Another oddity is that UpdateLayoutBtr() is called by other parts of my code and works properly. I have an event that is triggered when an attribute on a block is edited. The end of that event handler is a call to UpdatLayoutBtr(), and it successfully updates the&amp;nbsp;&lt;STRONG&gt;Table&lt;/STRONG&gt; and&amp;nbsp;&lt;STRONG&gt;Block&lt;/STRONG&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 25 Jan 2024 17:18:15 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/problems-inserting-a-table-and-block-then-updating-values/m-p/12520445#M5807</guid>
      <dc:creator>nshupeFMPE3</dc:creator>
      <dc:date>2024-01-25T17:18:15Z</dc:date>
    </item>
    <item>
      <title>Re: Problems inserting a Table and Block then updating values</title>
      <link>https://forums.autodesk.com/t5/net-forum/problems-inserting-a-table-and-block-then-updating-values/m-p/12520551#M5808</link>
      <description>&lt;P&gt;Did you set a breakpoint inside of your BuildTable() method and check what value is being passed into that argument (both with a literal string and the Title constant) ?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 25 Jan 2024 18:23:05 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/problems-inserting-a-table-and-block-then-updating-values/m-p/12520551#M5808</guid>
      <dc:creator>ActivistInvestor</dc:creator>
      <dc:date>2024-01-25T18:23:05Z</dc:date>
    </item>
    <item>
      <title>Re: Problems inserting a Table and Block then updating values</title>
      <link>https://forums.autodesk.com/t5/net-forum/problems-inserting-a-table-and-block-then-updating-values/m-p/12520982#M5809</link>
      <description>&lt;P&gt;Yes I've set a break point inside of the BuildTable() method, and the "title" parameter inside the method is properly set as expected. That "title" parameter is then used after merging the top row to set the TextString of the&amp;nbsp;&lt;STRONG&gt;Table&lt;/STRONG&gt;.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;LI-CODE lang="csharp"&gt;CellRange titleRange = CellRange.Create(tb, titleRow, zoneCol, titleRow, lengthCol);
tb.MergeCells(titleRange);
tb.Rows[titleRow].TextHeight = .25;//bigger title
tb.Cells[titleRow, 0].TextString = title;&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 25 Jan 2024 22:35:25 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/problems-inserting-a-table-and-block-then-updating-values/m-p/12520982#M5809</guid>
      <dc:creator>nshupeFMPE3</dc:creator>
      <dc:date>2024-01-25T22:35:25Z</dc:date>
    </item>
    <item>
      <title>Re: Problems inserting a Table and Block then updating values</title>
      <link>https://forums.autodesk.com/t5/net-forum/problems-inserting-a-table-and-block-then-updating-values/m-p/12522298#M5810</link>
      <description>&lt;P&gt;As I was writing out a replay about further experiments I ran, I found the answer. The code that was calling the Update() method was being run multiple times that it shouldn't have been. And it was passing in DataObjects for generating the table that had no data.&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;Sorry for wasting any time, but thanks for helping me narrow down what the problem was.&lt;/P&gt;</description>
      <pubDate>Fri, 26 Jan 2024 16:19:07 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/problems-inserting-a-table-and-block-then-updating-values/m-p/12522298#M5810</guid>
      <dc:creator>nshupeFMPE3</dc:creator>
      <dc:date>2024-01-26T16:19:07Z</dc:date>
    </item>
  </channel>
</rss>

