Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. how to create a sample HTML file using QFIle
Forum Updated to NodeBB v4.3 + New Features

how to create a sample HTML file using QFIle

Scheduled Pinned Locked Moved Solved General and Desktop
28 Posts 5 Posters 6.4k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • C Christian Ehrlicher
    11 Mar 2019, 07:10

    Please read the docs - I gave you the links so you even don't have to search. This can't work at all...

    M Offline
    M Offline
    ManiRon
    wrote on 11 Mar 2019, 07:20 last edited by
    #12

    @Christian-Ehrlicher any other idea if possible

    1 Reply Last reply
    0
    • S Offline
      S Offline
      SGaist
      Lifetime Qt Champion
      wrote on 11 Mar 2019, 07:29 last edited by
      #13

      Hi,

      Use of QFile:

      • Create QFile variable
      • Call open
      • Check that open was successful
      • Call write
      • Close file

      Done

      Interested in AI ? www.idiap.ch
      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

      M 1 Reply Last reply 11 Mar 2019, 09:15
      4
      • S SGaist
        11 Mar 2019, 07:29

        Hi,

        Use of QFile:

        • Create QFile variable
        • Call open
        • Check that open was successful
        • Call write
        • Close file

        Done

        M Offline
        M Offline
        ManiRon
        wrote on 11 Mar 2019, 09:15 last edited by ManiRon 3 Nov 2019, 09:29
        #14

        @SGaist yes i tried it, I create a table using HTML . If i do as mentioned by you the table doesnt has the column seperator line .0_1552296582698_Untitled.jpg

        J 1 Reply Last reply 11 Mar 2019, 09:30
        0
        • M ManiRon
          11 Mar 2019, 09:15

          @SGaist yes i tried it, I create a table using HTML . If i do as mentioned by you the table doesnt has the column seperator line .0_1552296582698_Untitled.jpg

          J Offline
          J Offline
          jsulm
          Lifetime Qt Champion
          wrote on 11 Mar 2019, 09:30 last edited by
          #15

          @ManiRon Can you please show the code you're using now? And the content of the file you're generating (the text, not pictures)?

          https://forum.qt.io/topic/113070/qt-code-of-conduct

          M 1 Reply Last reply 11 Mar 2019, 09:31
          0
          • J jsulm
            11 Mar 2019, 09:30

            @ManiRon Can you please show the code you're using now? And the content of the file you're generating (the text, not pictures)?

            M Offline
            M Offline
            ManiRon
            wrote on 11 Mar 2019, 09:31 last edited by
            #16

            @jsulm

            this whole code will be stored in a QString and this i am printing

            <article><div align="right"></div><header><h1><center><font color="midnightblue"></font></center></h1><h2><font color="dimgray"></font></h2></header></article><table border="1" style="background-color:ghostwhite;border:1px dotted black;width:80%;border-collapse:collapse;"><tr style="background-color:gainsboro;color:black;"></table><style type="text/css">table.tbl {border-width: 1px;border-style: solid;border-color: black;margin-top: 0px;margin-bottom: 0px;color: black;}table.tbl td {padding: 3px;}table.tbl th {padding: 3px;font-size: 18px;}</style><table width="100%" cellspacing="0" class="tbl" style="border:1px solid black;border-collapse:collapse;" align = center ><tr><th><b><center><span style =font-size:10pt;>Application</span></center></b></th><th><b><center><span style =font-size:10pt;>Check Sum</span></center></b></th><th><b><center><span style =font-size:10pt;>Total</span></center></b></th><th><b><center><span style =font-size:10pt;>No</span></center></b></th><th><b><center><span style =font-size:10pt;>Tested By</span></center></b></th><th><b><center><span style =font-size:10pt;></span></center></b></th><th><b><center><span style =font-size:10pt;></span></center></b></th></tr><tr><td><center><span style =font-size:10pt;>1.00</span></center></td><td><center><span style =font-size:10pt;>123</span></center></td><td><center><span style =font-size:10pt;></span></center></td><td><center><span style =font-size:10pt;></span></center></td><td><center><span style =font-size:10pt;></span></center></td><td><center><span style =font-size:10pt;></span></center></td><td><center><span style =font-size:10pt;></span></center></td></tr></table><br><br><br><style type="text/css">table.tbl1 {border-width: 1px;border-style: solid;border-color: black;margin-top: 0px;margin-bottom: 0px;color: black;}table.tbl1 td {padding: 3px;}table.tbl1 th {padding: 3px;font-size: 18px;}</style><table width="100%" cellspacing="0" class="tbl1"><tr><th>Name</th><th>Data</th><th>data</th><th>Test Result</th></tr><tr><td><b><span style =font-size:10pt;>sss</span></b></td><td>Data1</td><td>Data2</td><td><b><span style =font-size:10pt;><font color=Green>PASS</font></span></b></td></tr></table><br><br><br><br><hr><br><br>

            J 1 Reply Last reply 11 Mar 2019, 09:33
            0
            • M ManiRon
              11 Mar 2019, 09:31

              @jsulm

              this whole code will be stored in a QString and this i am printing

              <article><div align="right"></div><header><h1><center><font color="midnightblue"></font></center></h1><h2><font color="dimgray"></font></h2></header></article><table border="1" style="background-color:ghostwhite;border:1px dotted black;width:80%;border-collapse:collapse;"><tr style="background-color:gainsboro;color:black;"></table><style type="text/css">table.tbl {border-width: 1px;border-style: solid;border-color: black;margin-top: 0px;margin-bottom: 0px;color: black;}table.tbl td {padding: 3px;}table.tbl th {padding: 3px;font-size: 18px;}</style><table width="100%" cellspacing="0" class="tbl" style="border:1px solid black;border-collapse:collapse;" align = center ><tr><th><b><center><span style =font-size:10pt;>Application</span></center></b></th><th><b><center><span style =font-size:10pt;>Check Sum</span></center></b></th><th><b><center><span style =font-size:10pt;>Total</span></center></b></th><th><b><center><span style =font-size:10pt;>No</span></center></b></th><th><b><center><span style =font-size:10pt;>Tested By</span></center></b></th><th><b><center><span style =font-size:10pt;></span></center></b></th><th><b><center><span style =font-size:10pt;></span></center></b></th></tr><tr><td><center><span style =font-size:10pt;>1.00</span></center></td><td><center><span style =font-size:10pt;>123</span></center></td><td><center><span style =font-size:10pt;></span></center></td><td><center><span style =font-size:10pt;></span></center></td><td><center><span style =font-size:10pt;></span></center></td><td><center><span style =font-size:10pt;></span></center></td><td><center><span style =font-size:10pt;></span></center></td></tr></table><br><br><br><style type="text/css">table.tbl1 {border-width: 1px;border-style: solid;border-color: black;margin-top: 0px;margin-bottom: 0px;color: black;}table.tbl1 td {padding: 3px;}table.tbl1 th {padding: 3px;font-size: 18px;}</style><table width="100%" cellspacing="0" class="tbl1"><tr><th>Name</th><th>Data</th><th>data</th><th>Test Result</th></tr><tr><td><b><span style =font-size:10pt;>sss</span></b></td><td>Data1</td><td>Data2</td><td><b><span style =font-size:10pt;><font color=Green>PASS</font></span></b></td></tr></table><br><br><br><br><hr><br><br>

              J Offline
              J Offline
              jsulm
              Lifetime Qt Champion
              wrote on 11 Mar 2019, 09:33 last edited by jsulm 3 Nov 2019, 09:34
              #17

              @ManiRon This is not valid HTML.
              And by "code" I mean your C++ code to generate the HTML file...

              https://forum.qt.io/topic/113070/qt-code-of-conduct

              M 2 Replies Last reply 11 Mar 2019, 09:37
              0
              • J jsulm
                11 Mar 2019, 09:33

                @ManiRon This is not valid HTML.
                And by "code" I mean your C++ code to generate the HTML file...

                M Offline
                M Offline
                ManiRon
                wrote on 11 Mar 2019, 09:37 last edited by ManiRon 3 Nov 2019, 09:39
                #18

                @jsulm

                QString qHostVer = "<b><center><span style =font-size:10pt;>Application</span></center></b>";

                QString qCheckSum = "<b><center><span style =font-size:10pt;>123</span></center></b>";

                QString qTotal= "<b><center><span style =font-size:10pt;>Total</span></center></b>";

                QString qNo= "<b><center><span style =font-size:10pt;>No</span></center></b>";

                QString qTestedBy = "<b><center><span style =font-size:10pt;>Tested By</span></center></b>";

                         css1 = "<style type=\"text/css\">";
                         css1 += "table.tbl {border-width: 1px;border-style: solid;border-color: black;margin-top: 0px;margin-bottom: 0px;color: black;}";
                         css1 += "table.tbl td {padding: 3px;}";
                         css1 += "table.tbl th {padding: 3px;font-size: 18px;}";
                         css1+="</style>";
                         text1 += "<table width=\"100%\" cellspacing=\"0\" class=\"tbl\" style=\"border:1px solid black;border-collapse:collapse;\" align = center >";
                         text1 +=("<tr><th>"+qHostVer+"</th><th>"+qCheckSum+"</th><th>"+qTargetCheckSum+"</th>"\
                                  "<th>"+qfont+"</th><th>"+qTestedBy+"</th></tr>");
                        QString  text1 +=("<tr><td><center><span style =font-size:10pt;>" + 1.00 +"</span></center></td>"\
                                  "<td><center><span style =font-size:10pt;>" + 123 +"</span></center></td>"\
                                  "<td><center><span style =font-size:10pt;>" +  +"</span></center></td>"\
                                  "<td><center><span style =font-size:10pt;>" + o +"</span></center></td>"\
                                  "<td><center><span style =font-size:10pt;>"+ +"</span></center></td>");
                

                qRep = css+text;

                QFile qHtmlFile(file path);
                qHtmlFile.write(qRep);
                qHtmlFile.close();

                J 1 Reply Last reply 11 Mar 2019, 09:41
                0
                • J jsulm
                  11 Mar 2019, 09:33

                  @ManiRon This is not valid HTML.
                  And by "code" I mean your C++ code to generate the HTML file...

                  M Offline
                  M Offline
                  ManiRon
                  wrote on 11 Mar 2019, 09:40 last edited by
                  #19

                  @jsulm this code works fine when i use QTextbrowser, But i dont want to use QTextBrowser as it cannot be used inside a QThread

                  1 Reply Last reply
                  0
                  • M ManiRon
                    11 Mar 2019, 09:37

                    @jsulm

                    QString qHostVer = "<b><center><span style =font-size:10pt;>Application</span></center></b>";

                    QString qCheckSum = "<b><center><span style =font-size:10pt;>123</span></center></b>";

                    QString qTotal= "<b><center><span style =font-size:10pt;>Total</span></center></b>";

                    QString qNo= "<b><center><span style =font-size:10pt;>No</span></center></b>";

                    QString qTestedBy = "<b><center><span style =font-size:10pt;>Tested By</span></center></b>";

                             css1 = "<style type=\"text/css\">";
                             css1 += "table.tbl {border-width: 1px;border-style: solid;border-color: black;margin-top: 0px;margin-bottom: 0px;color: black;}";
                             css1 += "table.tbl td {padding: 3px;}";
                             css1 += "table.tbl th {padding: 3px;font-size: 18px;}";
                             css1+="</style>";
                             text1 += "<table width=\"100%\" cellspacing=\"0\" class=\"tbl\" style=\"border:1px solid black;border-collapse:collapse;\" align = center >";
                             text1 +=("<tr><th>"+qHostVer+"</th><th>"+qCheckSum+"</th><th>"+qTargetCheckSum+"</th>"\
                                      "<th>"+qfont+"</th><th>"+qTestedBy+"</th></tr>");
                            QString  text1 +=("<tr><td><center><span style =font-size:10pt;>" + 1.00 +"</span></center></td>"\
                                      "<td><center><span style =font-size:10pt;>" + 123 +"</span></center></td>"\
                                      "<td><center><span style =font-size:10pt;>" +  +"</span></center></td>"\
                                      "<td><center><span style =font-size:10pt;>" + o +"</span></center></td>"\
                                      "<td><center><span style =font-size:10pt;>"+ +"</span></center></td>");
                    

                    qRep = css+text;

                    QFile qHtmlFile(file path);
                    qHtmlFile.write(qRep);
                    qHtmlFile.close();

                    J Offline
                    J Offline
                    jsulm
                    Lifetime Qt Champion
                    wrote on 11 Mar 2019, 09:41 last edited by
                    #20

                    @ManiRon You're not generating valid HTML

                    https://forum.qt.io/topic/113070/qt-code-of-conduct

                    M 1 Reply Last reply 11 Mar 2019, 09:43
                    0
                    • J jsulm
                      11 Mar 2019, 09:41

                      @ManiRon You're not generating valid HTML

                      M Offline
                      M Offline
                      ManiRon
                      wrote on 11 Mar 2019, 09:43 last edited by
                      #21

                      @jsulm so what change i should make

                      J 1 Reply Last reply 11 Mar 2019, 09:45
                      0
                      • M ManiRon
                        11 Mar 2019, 09:43

                        @jsulm so what change i should make

                        J Offline
                        J Offline
                        jsulm
                        Lifetime Qt Champion
                        wrote on 11 Mar 2019, 09:45 last edited by
                        #22

                        @ManiRon This is how a HTML document should look like:

                        <html>
                          <head>
                           HEADER IF NEEDED 
                          </head>
                          <body>
                            YOUR CONTENT HERE
                          </body>
                        </html>
                        

                        https://forum.qt.io/topic/113070/qt-code-of-conduct

                        M 1 Reply Last reply 11 Mar 2019, 10:07
                        1
                        • V Offline
                          V Offline
                          VRonin
                          wrote on 11 Mar 2019, 10:00 last edited by
                          #23

                          Since you are hard coding stuff anyway, you can use QXmlStreamWriter directly on the QFile device to generate html:

                          QFile qHtmlFile("myFile.html");
                          if(qHtmlFile.open(QIODevice::WriteOnly){
                          QTextStream startDocStream(&qHtmlFile);
                          startDocStream << QStringLiteral("<!DOCTYPE html>");
                          QXmlStreamWriter htmlWriter(&qHtmlFile);
                          htmlWriter.writeStartElement(QStringLiteral("html"));
                          htmlWriter.writeAttribute(QStringLiteral("xmlns"),QStringLiteral("http://www.w3.org/1999/xhtml"));
                          htmlWriter.writeAttribute(QStringLiteral("lang"),QStringLiteral("en"));
                          htmlWriter.writeAttribute(QStringLiteral("xml"),QStringLiteral("lang"),QStringLiteral("en"));
                          htmlWriter.writeStartElement(QStringLiteral("head"));
                          htmlWriter.writeStartElement(QStringLiteral("meta"));
                          htmlWriter.writeAttribute(QStringLiteral("http-equiv"),QStringLiteral("Content-Type"));
                          htmlWriter.writeAttribute(QStringLiteral("content"),QStringLiteral("text/html; charset=utf-8"));
                          htmlWriter.writeEndElement(); //meta
                          htmlWriter.writeStartElement(QStringLiteral("title"));
                          htmlWriter.writeCharacters(QStringLiteral("Test Page"));
                          htmlWriter.writeEndElement(); //title
                          htmlWriter.writeStartElement(QStringLiteral("style"));
                          htmlWriter.writeCharacters(QStringLiteral("h1, h2, h3, h4 { color: rgb(83,129,53) } h1 { text-align: center; }"));
                          htmlWriter.writeEndElement(); //style
                          htmlWriter.writeEndElement(); //head
                          htmlWriter.writeStartElement(QStringLiteral("body"));
                          htmlWriter.writeStartElement(QStringLiteral("h1"));
                          htmlWriter.writeCharacters(QStringLiteral("Test Page"));
                          htmlWriter.writeEndElement(); //h1
                          htmlWriter.writeStartElement(QStringLiteral("h2"));
                          htmlWriter.writeCharacters(QStringLiteral("Lorem"));
                          htmlWriter.writeEndElement(); //h2
                          htmlWriter.writeStartElement(QStringLiteral("p"));
                          htmlWriter.writeCharacters(QStringLiteral("Lorem ipsum dolor sit amet, consectetur adipiscing elit."));
                          htmlWriter.writeEndElement(); //p
                          htmlWriter.writeEndElement(); //body
                          htmlWriter.writeEndElement(); //html
                          }
                          

                          "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
                          ~Napoleon Bonaparte

                          On a crusade to banish setIndexWidget() from the holy land of Qt

                          M 2 Replies Last reply 11 Mar 2019, 10:08
                          5
                          • J jsulm
                            11 Mar 2019, 09:45

                            @ManiRon This is how a HTML document should look like:

                            <html>
                              <head>
                               HEADER IF NEEDED 
                              </head>
                              <body>
                                YOUR CONTENT HERE
                              </body>
                            </html>
                            
                            M Offline
                            M Offline
                            ManiRon
                            wrote on 11 Mar 2019, 10:07 last edited by
                            #24

                            @jsulm I have not defined the html tag but still it was generating the html file correctly but when i removed the QTextbrowser , still it was generating correctly but the internal borders of the table is only the major missing.

                            1 Reply Last reply
                            0
                            • V VRonin
                              11 Mar 2019, 10:00

                              Since you are hard coding stuff anyway, you can use QXmlStreamWriter directly on the QFile device to generate html:

                              QFile qHtmlFile("myFile.html");
                              if(qHtmlFile.open(QIODevice::WriteOnly){
                              QTextStream startDocStream(&qHtmlFile);
                              startDocStream << QStringLiteral("<!DOCTYPE html>");
                              QXmlStreamWriter htmlWriter(&qHtmlFile);
                              htmlWriter.writeStartElement(QStringLiteral("html"));
                              htmlWriter.writeAttribute(QStringLiteral("xmlns"),QStringLiteral("http://www.w3.org/1999/xhtml"));
                              htmlWriter.writeAttribute(QStringLiteral("lang"),QStringLiteral("en"));
                              htmlWriter.writeAttribute(QStringLiteral("xml"),QStringLiteral("lang"),QStringLiteral("en"));
                              htmlWriter.writeStartElement(QStringLiteral("head"));
                              htmlWriter.writeStartElement(QStringLiteral("meta"));
                              htmlWriter.writeAttribute(QStringLiteral("http-equiv"),QStringLiteral("Content-Type"));
                              htmlWriter.writeAttribute(QStringLiteral("content"),QStringLiteral("text/html; charset=utf-8"));
                              htmlWriter.writeEndElement(); //meta
                              htmlWriter.writeStartElement(QStringLiteral("title"));
                              htmlWriter.writeCharacters(QStringLiteral("Test Page"));
                              htmlWriter.writeEndElement(); //title
                              htmlWriter.writeStartElement(QStringLiteral("style"));
                              htmlWriter.writeCharacters(QStringLiteral("h1, h2, h3, h4 { color: rgb(83,129,53) } h1 { text-align: center; }"));
                              htmlWriter.writeEndElement(); //style
                              htmlWriter.writeEndElement(); //head
                              htmlWriter.writeStartElement(QStringLiteral("body"));
                              htmlWriter.writeStartElement(QStringLiteral("h1"));
                              htmlWriter.writeCharacters(QStringLiteral("Test Page"));
                              htmlWriter.writeEndElement(); //h1
                              htmlWriter.writeStartElement(QStringLiteral("h2"));
                              htmlWriter.writeCharacters(QStringLiteral("Lorem"));
                              htmlWriter.writeEndElement(); //h2
                              htmlWriter.writeStartElement(QStringLiteral("p"));
                              htmlWriter.writeCharacters(QStringLiteral("Lorem ipsum dolor sit amet, consectetur adipiscing elit."));
                              htmlWriter.writeEndElement(); //p
                              htmlWriter.writeEndElement(); //body
                              htmlWriter.writeEndElement(); //html
                              }
                              
                              M Offline
                              M Offline
                              ManiRon
                              wrote on 11 Mar 2019, 10:08 last edited by
                              #25

                              @VRonin this might make it a little tough i think so sir?

                              1 Reply Last reply
                              0
                              • V VRonin
                                11 Mar 2019, 10:00

                                Since you are hard coding stuff anyway, you can use QXmlStreamWriter directly on the QFile device to generate html:

                                QFile qHtmlFile("myFile.html");
                                if(qHtmlFile.open(QIODevice::WriteOnly){
                                QTextStream startDocStream(&qHtmlFile);
                                startDocStream << QStringLiteral("<!DOCTYPE html>");
                                QXmlStreamWriter htmlWriter(&qHtmlFile);
                                htmlWriter.writeStartElement(QStringLiteral("html"));
                                htmlWriter.writeAttribute(QStringLiteral("xmlns"),QStringLiteral("http://www.w3.org/1999/xhtml"));
                                htmlWriter.writeAttribute(QStringLiteral("lang"),QStringLiteral("en"));
                                htmlWriter.writeAttribute(QStringLiteral("xml"),QStringLiteral("lang"),QStringLiteral("en"));
                                htmlWriter.writeStartElement(QStringLiteral("head"));
                                htmlWriter.writeStartElement(QStringLiteral("meta"));
                                htmlWriter.writeAttribute(QStringLiteral("http-equiv"),QStringLiteral("Content-Type"));
                                htmlWriter.writeAttribute(QStringLiteral("content"),QStringLiteral("text/html; charset=utf-8"));
                                htmlWriter.writeEndElement(); //meta
                                htmlWriter.writeStartElement(QStringLiteral("title"));
                                htmlWriter.writeCharacters(QStringLiteral("Test Page"));
                                htmlWriter.writeEndElement(); //title
                                htmlWriter.writeStartElement(QStringLiteral("style"));
                                htmlWriter.writeCharacters(QStringLiteral("h1, h2, h3, h4 { color: rgb(83,129,53) } h1 { text-align: center; }"));
                                htmlWriter.writeEndElement(); //style
                                htmlWriter.writeEndElement(); //head
                                htmlWriter.writeStartElement(QStringLiteral("body"));
                                htmlWriter.writeStartElement(QStringLiteral("h1"));
                                htmlWriter.writeCharacters(QStringLiteral("Test Page"));
                                htmlWriter.writeEndElement(); //h1
                                htmlWriter.writeStartElement(QStringLiteral("h2"));
                                htmlWriter.writeCharacters(QStringLiteral("Lorem"));
                                htmlWriter.writeEndElement(); //h2
                                htmlWriter.writeStartElement(QStringLiteral("p"));
                                htmlWriter.writeCharacters(QStringLiteral("Lorem ipsum dolor sit amet, consectetur adipiscing elit."));
                                htmlWriter.writeEndElement(); //p
                                htmlWriter.writeEndElement(); //body
                                htmlWriter.writeEndElement(); //html
                                }
                                
                                M Offline
                                M Offline
                                ManiRon
                                wrote on 11 Mar 2019, 10:28 last edited by ManiRon 3 Nov 2019, 10:32
                                #26

                                @VRonin @jsulm any other better way if possible with the same way in which i have done

                                1 Reply Last reply
                                0
                                • S Offline
                                  S Offline
                                  SGaist
                                  Lifetime Qt Champion
                                  wrote on 11 Mar 2019, 22:45 last edited by
                                  #27

                                  Did you try to compare the HTML you generated with QTextBrowser and the one you are generating now ?

                                  Interested in AI ? www.idiap.ch
                                  Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                                  M 1 Reply Last reply 13 Mar 2019, 07:03
                                  1
                                  • S SGaist
                                    11 Mar 2019, 22:45

                                    Did you try to compare the HTML you generated with QTextBrowser and the one you are generating now ?

                                    M Offline
                                    M Offline
                                    ManiRon
                                    wrote on 13 Mar 2019, 07:03 last edited by
                                    #28

                                    @SGaist it worked when i added "table.tbl td {border: 2px solid black;}, table.tbl th {border: 2px solid black;}" these two line .

                                    1 Reply Last reply
                                    0

                                    21/28

                                    11 Mar 2019, 09:43

                                    • Login

                                    • Login or register to search.
                                    21 out of 28
                                    • First post
                                      21/28
                                      Last post
                                    0
                                    • Categories
                                    • Recent
                                    • Tags
                                    • Popular
                                    • Users
                                    • Groups
                                    • Search
                                    • Get Qt Extensions
                                    • Unsolved