Check if a point is right or left of another one in TikZExtract x, y coordinate of an arbitrary point in TikZRotate a node but not its content: the case of the ellipse decorationNumerical conditional within tikz keys?TikZ: Drawing an arc from an intersection to an intersectionDrawing rectilinear curves in Tikz, aka an Etch-a-Sketch drawingReferencing locations within a text boxLine up nested tikz enviroments or how to get rid of themTikz-qtree : graphs in the nodesHow to draw more than 8 edges to one node in tikz-er2Using tikz Calc package to add cordinatesIn Tikz is there a way to make Tikz images begin “exactly” at the leftmost point in the page?

Is this draw by repetition?

Should I tell management that I intend to leave due to bad software development practices?

Is it possible to create a QR code using text?

What historical events would have to change in order to make 19th century "steampunk" technology possible?

How badly should I try to prevent a user from XSSing themselves?

Pact of Blade Warlock with Dancing Blade

What is a Samsaran Word™?

How seriously should I take size and weight limits of hand luggage?

Why didn't Boeing produce its own regional jet?

Does int main() need a declaration on C++?

What's the meaning of "Sollensaussagen"?

files created then deleted at every second in tmp directory

OP Amp not amplifying audio signal

Standard deduction V. mortgage interest deduction - is it basically only for the rich?

Is it possible to map the firing of neurons in the human brain so as to stimulate artificial memories in someone else?

What exactly is ineptocracy?

What Exploit Are These User Agents Trying to Use?

Could neural networks be considered metaheuristics?

Why do I get negative height?

Processor speed limited at 0.4 Ghz

How do conventional missiles fly?

How to prevent "they're falling in love" trope

Finitely generated matrix groups whose eigenvalues are all algebraic

How to travel to Japan while expressing milk?



Check if a point is right or left of another one in TikZ


Extract x, y coordinate of an arbitrary point in TikZRotate a node but not its content: the case of the ellipse decorationNumerical conditional within tikz keys?TikZ: Drawing an arc from an intersection to an intersectionDrawing rectilinear curves in Tikz, aka an Etch-a-Sketch drawingReferencing locations within a text boxLine up nested tikz enviroments or how to get rid of themTikz-qtree : graphs in the nodesHow to draw more than 8 edges to one node in tikz-er2Using tikz Calc package to add cordinatesIn Tikz is there a way to make Tikz images begin “exactly” at the leftmost point in the page?













3















Trying to implement a handy way to check if a TikZ point is right or left of another one, I came up with the following MWE.



documentclass[border=1mm, tikz]standalone

makeatletter
% prints 1 if #1.center is right than #2.center, 0 otherwise
newcommandisRight[2]
%pgfpointdiffab gives b-a
pgfpointdiffpgfpointanchor#2centerpgfpointanchor#1center
pgfmathparsegreater(pgf@x,0)pgfmathresult


% 1 if #1.center is left than #2.center, 0 otherwise -> result in pgfmathresult
newcommandcheckIfLeft[2]
%pgfpointdiffab gives b-a
pgfpointdiffpgfpointanchor#2centerpgfpointanchor#1center%
pgfmathparseless(pgf@x,0)

makeatother

begindocument

begintikzpicture
node[draw] (A) at (0,0) A;
node[draw] (B) at (1,0) B;

checkIfLeftAB
ifnumpgfmathresult=1
node at (0.5,1)A is left of B;
fi

%ifnumisRightBA=1
% node at (0.5,-1)B is right of A;
%fi
endtikzpicture
enddocument


but I am quite unsatisfied with it. What I would like to have is something that may be used in a ifnum ... fi construct, as in the commented code (and I would like not to use packages beyond what pgf loads).



Here my questions:



  1. In the commented code, what is exactly happening in the ifnum expansion, which makes the compilation fail?

  2. How can I fix the isRight command in order to be able to use it together with ifnum?

  3. If question 2 is tricky, how can I affect the ifnum expansion to achieve what I wish?

  4. Is there in pgf a smarter/more straightforward way to check if a TikZ point is left/right of another point? My final goal would be to draw something only if a point is right/left of another.

Bonus question:



  1. How (and where) is pdfstrcmp implemented, since it is harmless to use it in a ifnum ... fi construct?









share|improve this question






















  • your commands are not expandable (they assign a number to pgfmathresult) and will never work in a ifnum. pdfstrcmp is a primitive.

    – Ulrike Fischer
    10 hours ago












  • Thanks for the comment. I find it a bit cryptic, though. Do you want to say that I should give up and what I got so far is the best I can have? The fact that pdfstrcmp is a primitive clarifies why I was not finding its implementation... I should have had a look to the pdftex manual before.

    – Axel Krypton
    9 hours ago











  • You will have to give up one part - either ifnum or pgfmath commands. You could implement something working with ifnum by using e.g. zrefsavepos (needs two compilations) but not with pgfmathparse.

    – Ulrike Fischer
    9 hours ago















3















Trying to implement a handy way to check if a TikZ point is right or left of another one, I came up with the following MWE.



documentclass[border=1mm, tikz]standalone

makeatletter
% prints 1 if #1.center is right than #2.center, 0 otherwise
newcommandisRight[2]
%pgfpointdiffab gives b-a
pgfpointdiffpgfpointanchor#2centerpgfpointanchor#1center
pgfmathparsegreater(pgf@x,0)pgfmathresult


% 1 if #1.center is left than #2.center, 0 otherwise -> result in pgfmathresult
newcommandcheckIfLeft[2]
%pgfpointdiffab gives b-a
pgfpointdiffpgfpointanchor#2centerpgfpointanchor#1center%
pgfmathparseless(pgf@x,0)

makeatother

begindocument

begintikzpicture
node[draw] (A) at (0,0) A;
node[draw] (B) at (1,0) B;

checkIfLeftAB
ifnumpgfmathresult=1
node at (0.5,1)A is left of B;
fi

%ifnumisRightBA=1
% node at (0.5,-1)B is right of A;
%fi
endtikzpicture
enddocument


but I am quite unsatisfied with it. What I would like to have is something that may be used in a ifnum ... fi construct, as in the commented code (and I would like not to use packages beyond what pgf loads).



Here my questions:



  1. In the commented code, what is exactly happening in the ifnum expansion, which makes the compilation fail?

  2. How can I fix the isRight command in order to be able to use it together with ifnum?

  3. If question 2 is tricky, how can I affect the ifnum expansion to achieve what I wish?

  4. Is there in pgf a smarter/more straightforward way to check if a TikZ point is left/right of another point? My final goal would be to draw something only if a point is right/left of another.

Bonus question:



  1. How (and where) is pdfstrcmp implemented, since it is harmless to use it in a ifnum ... fi construct?









share|improve this question






















  • your commands are not expandable (they assign a number to pgfmathresult) and will never work in a ifnum. pdfstrcmp is a primitive.

    – Ulrike Fischer
    10 hours ago












  • Thanks for the comment. I find it a bit cryptic, though. Do you want to say that I should give up and what I got so far is the best I can have? The fact that pdfstrcmp is a primitive clarifies why I was not finding its implementation... I should have had a look to the pdftex manual before.

    – Axel Krypton
    9 hours ago











  • You will have to give up one part - either ifnum or pgfmath commands. You could implement something working with ifnum by using e.g. zrefsavepos (needs two compilations) but not with pgfmathparse.

    – Ulrike Fischer
    9 hours ago













3












3








3








Trying to implement a handy way to check if a TikZ point is right or left of another one, I came up with the following MWE.



documentclass[border=1mm, tikz]standalone

makeatletter
% prints 1 if #1.center is right than #2.center, 0 otherwise
newcommandisRight[2]
%pgfpointdiffab gives b-a
pgfpointdiffpgfpointanchor#2centerpgfpointanchor#1center
pgfmathparsegreater(pgf@x,0)pgfmathresult


% 1 if #1.center is left than #2.center, 0 otherwise -> result in pgfmathresult
newcommandcheckIfLeft[2]
%pgfpointdiffab gives b-a
pgfpointdiffpgfpointanchor#2centerpgfpointanchor#1center%
pgfmathparseless(pgf@x,0)

makeatother

begindocument

begintikzpicture
node[draw] (A) at (0,0) A;
node[draw] (B) at (1,0) B;

checkIfLeftAB
ifnumpgfmathresult=1
node at (0.5,1)A is left of B;
fi

%ifnumisRightBA=1
% node at (0.5,-1)B is right of A;
%fi
endtikzpicture
enddocument


but I am quite unsatisfied with it. What I would like to have is something that may be used in a ifnum ... fi construct, as in the commented code (and I would like not to use packages beyond what pgf loads).



Here my questions:



  1. In the commented code, what is exactly happening in the ifnum expansion, which makes the compilation fail?

  2. How can I fix the isRight command in order to be able to use it together with ifnum?

  3. If question 2 is tricky, how can I affect the ifnum expansion to achieve what I wish?

  4. Is there in pgf a smarter/more straightforward way to check if a TikZ point is left/right of another point? My final goal would be to draw something only if a point is right/left of another.

Bonus question:



  1. How (and where) is pdfstrcmp implemented, since it is harmless to use it in a ifnum ... fi construct?









share|improve this question














Trying to implement a handy way to check if a TikZ point is right or left of another one, I came up with the following MWE.



documentclass[border=1mm, tikz]standalone

makeatletter
% prints 1 if #1.center is right than #2.center, 0 otherwise
newcommandisRight[2]
%pgfpointdiffab gives b-a
pgfpointdiffpgfpointanchor#2centerpgfpointanchor#1center
pgfmathparsegreater(pgf@x,0)pgfmathresult


% 1 if #1.center is left than #2.center, 0 otherwise -> result in pgfmathresult
newcommandcheckIfLeft[2]
%pgfpointdiffab gives b-a
pgfpointdiffpgfpointanchor#2centerpgfpointanchor#1center%
pgfmathparseless(pgf@x,0)

makeatother

begindocument

begintikzpicture
node[draw] (A) at (0,0) A;
node[draw] (B) at (1,0) B;

checkIfLeftAB
ifnumpgfmathresult=1
node at (0.5,1)A is left of B;
fi

%ifnumisRightBA=1
% node at (0.5,-1)B is right of A;
%fi
endtikzpicture
enddocument


but I am quite unsatisfied with it. What I would like to have is something that may be used in a ifnum ... fi construct, as in the commented code (and I would like not to use packages beyond what pgf loads).



Here my questions:



  1. In the commented code, what is exactly happening in the ifnum expansion, which makes the compilation fail?

  2. How can I fix the isRight command in order to be able to use it together with ifnum?

  3. If question 2 is tricky, how can I affect the ifnum expansion to achieve what I wish?

  4. Is there in pgf a smarter/more straightforward way to check if a TikZ point is left/right of another point? My final goal would be to draw something only if a point is right/left of another.

Bonus question:



  1. How (and where) is pdfstrcmp implemented, since it is harmless to use it in a ifnum ... fi construct?






tikz-pgf expansion






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked 11 hours ago









Axel KryptonAxel Krypton

475211




475211












  • your commands are not expandable (they assign a number to pgfmathresult) and will never work in a ifnum. pdfstrcmp is a primitive.

    – Ulrike Fischer
    10 hours ago












  • Thanks for the comment. I find it a bit cryptic, though. Do you want to say that I should give up and what I got so far is the best I can have? The fact that pdfstrcmp is a primitive clarifies why I was not finding its implementation... I should have had a look to the pdftex manual before.

    – Axel Krypton
    9 hours ago











  • You will have to give up one part - either ifnum or pgfmath commands. You could implement something working with ifnum by using e.g. zrefsavepos (needs two compilations) but not with pgfmathparse.

    – Ulrike Fischer
    9 hours ago

















  • your commands are not expandable (they assign a number to pgfmathresult) and will never work in a ifnum. pdfstrcmp is a primitive.

    – Ulrike Fischer
    10 hours ago












  • Thanks for the comment. I find it a bit cryptic, though. Do you want to say that I should give up and what I got so far is the best I can have? The fact that pdfstrcmp is a primitive clarifies why I was not finding its implementation... I should have had a look to the pdftex manual before.

    – Axel Krypton
    9 hours ago











  • You will have to give up one part - either ifnum or pgfmath commands. You could implement something working with ifnum by using e.g. zrefsavepos (needs two compilations) but not with pgfmathparse.

    – Ulrike Fischer
    9 hours ago
















your commands are not expandable (they assign a number to pgfmathresult) and will never work in a ifnum. pdfstrcmp is a primitive.

– Ulrike Fischer
10 hours ago






your commands are not expandable (they assign a number to pgfmathresult) and will never work in a ifnum. pdfstrcmp is a primitive.

– Ulrike Fischer
10 hours ago














Thanks for the comment. I find it a bit cryptic, though. Do you want to say that I should give up and what I got so far is the best I can have? The fact that pdfstrcmp is a primitive clarifies why I was not finding its implementation... I should have had a look to the pdftex manual before.

– Axel Krypton
9 hours ago





Thanks for the comment. I find it a bit cryptic, though. Do you want to say that I should give up and what I got so far is the best I can have? The fact that pdfstrcmp is a primitive clarifies why I was not finding its implementation... I should have had a look to the pdftex manual before.

– Axel Krypton
9 hours ago













You will have to give up one part - either ifnum or pgfmath commands. You could implement something working with ifnum by using e.g. zrefsavepos (needs two compilations) but not with pgfmathparse.

– Ulrike Fischer
9 hours ago





You will have to give up one part - either ifnum or pgfmath commands. You could implement something working with ifnum by using e.g. zrefsavepos (needs two compilations) but not with pgfmathparse.

– Ulrike Fischer
9 hours ago










2 Answers
2






active

oldest

votes


















6














How about



documentclass[border=1mm, tikz]standalone
usetikzlibrarycalc
tikzsetif left/.style n args=4insert path=%
let p1=($#1-#2$) in ifdimx1<0pt
#3
else
#4
fi

begindocument

begintikzpicture
node[draw] (A) at (0,0) A;
node[draw] (B) at (1,0) B;
path[if left=(A)(B)(0.5,1) node A is left of B];
path[if left=(B)(A)(0.5,-1) node B is left of A];
endtikzpicture
enddocument


enter image description here






share|improve this answer






























    3














    Here is some low level code based on this answer that do not use calc.



    documentclass[tikz,border=7pt]standalone
    newififleft
    makeatletter
    defisleft(#1)of(#2)?%
    tikz@scan@one@pointpgfutil@firstofone(#1)relax%
    pgf@xa=pgf@x%
    tikz@scan@one@pointpgfutil@firstofone(#2)relax%
    ifdimpgf@xa<pgf@xrelaxlefttrueelseleftfalsefi

    makeatother

    begindocument
    begintikzpicture[nodes=circle]
    node[draw] (A) at (0,0) A;
    node[draw] (B) at (2,1) right of A;
    isleft(A)of(B)?
    path (A) ifleft edge[latex-] (B) else edge[-latex] (B) fi ;
    foreach~in1,...,70
    path[ultra thin] (180*rand:1) coordinate(N)
    pgfextraisleft(N)of(A)?
    ifleft [red] else [blue] fi node[scale=2].
    (N) ifleft edge[latex-] (A) else edge[-latex] (A) fi;
    endtikzpicture
    enddocument


    enter image description here






    share|improve this answer

























      Your Answer








      StackExchange.ready(function()
      var channelOptions =
      tags: "".split(" "),
      id: "85"
      ;
      initTagRenderer("".split(" "), "".split(" "), channelOptions);

      StackExchange.using("externalEditor", function()
      // Have to fire editor after snippets, if snippets enabled
      if (StackExchange.settings.snippets.snippetsEnabled)
      StackExchange.using("snippets", function()
      createEditor();
      );

      else
      createEditor();

      );

      function createEditor()
      StackExchange.prepareEditor(
      heartbeatType: 'answer',
      autoActivateHeartbeat: false,
      convertImagesToLinks: false,
      noModals: true,
      showLowRepImageUploadWarning: true,
      reputationToPostImages: null,
      bindNavPrevention: true,
      postfix: "",
      imageUploader:
      brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
      contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
      allowUrls: true
      ,
      onDemand: true,
      discardSelector: ".discard-answer"
      ,immediatelyShowMarkdownHelp:true
      );



      );













      draft saved

      draft discarded


















      StackExchange.ready(
      function ()
      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f482761%2fcheck-if-a-point-is-right-or-left-of-another-one-in-tikz%23new-answer', 'question_page');

      );

      Post as a guest















      Required, but never shown

























      2 Answers
      2






      active

      oldest

      votes








      2 Answers
      2






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes









      6














      How about



      documentclass[border=1mm, tikz]standalone
      usetikzlibrarycalc
      tikzsetif left/.style n args=4insert path=%
      let p1=($#1-#2$) in ifdimx1<0pt
      #3
      else
      #4
      fi

      begindocument

      begintikzpicture
      node[draw] (A) at (0,0) A;
      node[draw] (B) at (1,0) B;
      path[if left=(A)(B)(0.5,1) node A is left of B];
      path[if left=(B)(A)(0.5,-1) node B is left of A];
      endtikzpicture
      enddocument


      enter image description here






      share|improve this answer



























        6














        How about



        documentclass[border=1mm, tikz]standalone
        usetikzlibrarycalc
        tikzsetif left/.style n args=4insert path=%
        let p1=($#1-#2$) in ifdimx1<0pt
        #3
        else
        #4
        fi

        begindocument

        begintikzpicture
        node[draw] (A) at (0,0) A;
        node[draw] (B) at (1,0) B;
        path[if left=(A)(B)(0.5,1) node A is left of B];
        path[if left=(B)(A)(0.5,-1) node B is left of A];
        endtikzpicture
        enddocument


        enter image description here






        share|improve this answer

























          6












          6








          6







          How about



          documentclass[border=1mm, tikz]standalone
          usetikzlibrarycalc
          tikzsetif left/.style n args=4insert path=%
          let p1=($#1-#2$) in ifdimx1<0pt
          #3
          else
          #4
          fi

          begindocument

          begintikzpicture
          node[draw] (A) at (0,0) A;
          node[draw] (B) at (1,0) B;
          path[if left=(A)(B)(0.5,1) node A is left of B];
          path[if left=(B)(A)(0.5,-1) node B is left of A];
          endtikzpicture
          enddocument


          enter image description here






          share|improve this answer













          How about



          documentclass[border=1mm, tikz]standalone
          usetikzlibrarycalc
          tikzsetif left/.style n args=4insert path=%
          let p1=($#1-#2$) in ifdimx1<0pt
          #3
          else
          #4
          fi

          begindocument

          begintikzpicture
          node[draw] (A) at (0,0) A;
          node[draw] (B) at (1,0) B;
          path[if left=(A)(B)(0.5,1) node A is left of B];
          path[if left=(B)(A)(0.5,-1) node B is left of A];
          endtikzpicture
          enddocument


          enter image description here







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered 9 hours ago









          marmotmarmot

          114k5145276




          114k5145276





















              3














              Here is some low level code based on this answer that do not use calc.



              documentclass[tikz,border=7pt]standalone
              newififleft
              makeatletter
              defisleft(#1)of(#2)?%
              tikz@scan@one@pointpgfutil@firstofone(#1)relax%
              pgf@xa=pgf@x%
              tikz@scan@one@pointpgfutil@firstofone(#2)relax%
              ifdimpgf@xa<pgf@xrelaxlefttrueelseleftfalsefi

              makeatother

              begindocument
              begintikzpicture[nodes=circle]
              node[draw] (A) at (0,0) A;
              node[draw] (B) at (2,1) right of A;
              isleft(A)of(B)?
              path (A) ifleft edge[latex-] (B) else edge[-latex] (B) fi ;
              foreach~in1,...,70
              path[ultra thin] (180*rand:1) coordinate(N)
              pgfextraisleft(N)of(A)?
              ifleft [red] else [blue] fi node[scale=2].
              (N) ifleft edge[latex-] (A) else edge[-latex] (A) fi;
              endtikzpicture
              enddocument


              enter image description here






              share|improve this answer





























                3














                Here is some low level code based on this answer that do not use calc.



                documentclass[tikz,border=7pt]standalone
                newififleft
                makeatletter
                defisleft(#1)of(#2)?%
                tikz@scan@one@pointpgfutil@firstofone(#1)relax%
                pgf@xa=pgf@x%
                tikz@scan@one@pointpgfutil@firstofone(#2)relax%
                ifdimpgf@xa<pgf@xrelaxlefttrueelseleftfalsefi

                makeatother

                begindocument
                begintikzpicture[nodes=circle]
                node[draw] (A) at (0,0) A;
                node[draw] (B) at (2,1) right of A;
                isleft(A)of(B)?
                path (A) ifleft edge[latex-] (B) else edge[-latex] (B) fi ;
                foreach~in1,...,70
                path[ultra thin] (180*rand:1) coordinate(N)
                pgfextraisleft(N)of(A)?
                ifleft [red] else [blue] fi node[scale=2].
                (N) ifleft edge[latex-] (A) else edge[-latex] (A) fi;
                endtikzpicture
                enddocument


                enter image description here






                share|improve this answer



























                  3












                  3








                  3







                  Here is some low level code based on this answer that do not use calc.



                  documentclass[tikz,border=7pt]standalone
                  newififleft
                  makeatletter
                  defisleft(#1)of(#2)?%
                  tikz@scan@one@pointpgfutil@firstofone(#1)relax%
                  pgf@xa=pgf@x%
                  tikz@scan@one@pointpgfutil@firstofone(#2)relax%
                  ifdimpgf@xa<pgf@xrelaxlefttrueelseleftfalsefi

                  makeatother

                  begindocument
                  begintikzpicture[nodes=circle]
                  node[draw] (A) at (0,0) A;
                  node[draw] (B) at (2,1) right of A;
                  isleft(A)of(B)?
                  path (A) ifleft edge[latex-] (B) else edge[-latex] (B) fi ;
                  foreach~in1,...,70
                  path[ultra thin] (180*rand:1) coordinate(N)
                  pgfextraisleft(N)of(A)?
                  ifleft [red] else [blue] fi node[scale=2].
                  (N) ifleft edge[latex-] (A) else edge[-latex] (A) fi;
                  endtikzpicture
                  enddocument


                  enter image description here






                  share|improve this answer















                  Here is some low level code based on this answer that do not use calc.



                  documentclass[tikz,border=7pt]standalone
                  newififleft
                  makeatletter
                  defisleft(#1)of(#2)?%
                  tikz@scan@one@pointpgfutil@firstofone(#1)relax%
                  pgf@xa=pgf@x%
                  tikz@scan@one@pointpgfutil@firstofone(#2)relax%
                  ifdimpgf@xa<pgf@xrelaxlefttrueelseleftfalsefi

                  makeatother

                  begindocument
                  begintikzpicture[nodes=circle]
                  node[draw] (A) at (0,0) A;
                  node[draw] (B) at (2,1) right of A;
                  isleft(A)of(B)?
                  path (A) ifleft edge[latex-] (B) else edge[-latex] (B) fi ;
                  foreach~in1,...,70
                  path[ultra thin] (180*rand:1) coordinate(N)
                  pgfextraisleft(N)of(A)?
                  ifleft [red] else [blue] fi node[scale=2].
                  (N) ifleft edge[latex-] (A) else edge[-latex] (A) fi;
                  endtikzpicture
                  enddocument


                  enter image description here







                  share|improve this answer














                  share|improve this answer



                  share|improve this answer








                  edited 3 hours ago

























                  answered 5 hours ago









                  KpymKpym

                  17.5k24191




                  17.5k24191



























                      draft saved

                      draft discarded
















































                      Thanks for contributing an answer to TeX - LaTeX Stack Exchange!


                      • Please be sure to answer the question. Provide details and share your research!

                      But avoid


                      • Asking for help, clarification, or responding to other answers.

                      • Making statements based on opinion; back them up with references or personal experience.

                      To learn more, see our tips on writing great answers.




                      draft saved


                      draft discarded














                      StackExchange.ready(
                      function ()
                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f482761%2fcheck-if-a-point-is-right-or-left-of-another-one-in-tikz%23new-answer', 'question_page');

                      );

                      Post as a guest















                      Required, but never shown





















































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown

































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown