� c��j�^��f� ddlZddlZddlZddlZddlZddlZddlZgd�ZGd�de�Z ej�Z iZ da dad0dd�d�Zd0d�Zd1d �Zd �Zd �Zdd�d �ZGd �de�ZGd�de�ZGd�de�ZGd�de�ZGd�de�ZGd�de�ZGd�de�ZeZGd�de�ZGd�de�ZGd�d e�Z Gd!�d"e�Z!d#�Z"d$�Z#ejHdd%d&k(r Gd'�d(e�Z%ejHd)k(rGd*�d+e�Z&Gd,�d-e�Z'd.�Z(e)d/k(re(�yy)2�N)�Error�open�open_new� open_new_tab�get�registerc� �eZdZy)rN)�__name__� __module__� __qualname__���#/usr/lib64/python3.12/webbrowser.pyrrs��rrF�� preferredc�� t5t� t�||gt|j �<|st r#|�d�t k(rtj d|�ntj|�ddd�y#1swYyxYw)Nz.desktopr)�_lock� _tryorder�register_standard_browsers� _browsers�lower�_os_preferred_browser�insert�append)�name�klass�instancers rrrsh��'� � � � &� (�#(�(�"3� �$�*�*�,�� �.�d�V�8�3D�H]�3]� � � �Q�� %� � � �T� "� ���s �A*A;�;Bc�� t�t5t� t�ddd�|�|g}nt}|D]u}d|vr:tj|�}|ddk(rt |dd�cSt |�cS t|j�}|d�|dcS|d��k|d�cStd��#1swY��xYw#t$rt|�}Y�LwxYw)N�%s������&�rz!could not locate runnable browser) rrr�shlex�split�BackgroundBrowser�GenericBrowserrr�KeyError� _synthesizer)�using� alternatives�browser�commands rrr&s���M��� �� �*�,�� ���w� � � ��� �7�?��k�k�'�*�G��r�{�c�!�(���"��6�6�%�g�.�.� /�#�G�M�M�O�4���q�z�%��q�z�!����'�!�w�q�z�|�#�# �$ �3� 4�4�3�U��&� /�%�g�.�� /�s�B8�7C�8C�C�Cc�� t�t5t� t�ddd�tD]"}t|�}|j |||�s�"yy#1swY�5xYw)NTF)rrrrr)�url�new� autoraiserr+s rrrHsX�� ��� �� �*�,�����d�)�� �<�<��S�)� ,��� ��U�s �A�Ac�� t|d�S�Nr"�r�r.s rrr^���� ��Q�<�rc�� t|d�S�N�r3r4s rrrer5rc��� |j�d}tj|�sddgStjj |�} t |j�}|d}|rp|j�|j k(rSddl }|j|�}||_ tjj |�|_t|d||��d|gSddgS#t$rddgcYSwxYw)Nrr")rr) r$�shutil�which�os�path�basenamerrr'�copyrr)r+r�cmdrr,� controllerr?s rr(r(ms��� � �-�-�/�!� �C� �<�<�� ��d�|�� �7�7� � �C� �D���D�J�J�L�)�����J��d�j�j�l�j�&9�&9�9���Y�Y�z�*� �!� �� �g�g�.�.�w�7� ����$��y�I��j�!�!� �$�<��� ���d�|���s�C � C0�/C0c�@�eZdZ dgZdd�Zd d�Zd�Zd�Zed��Z y) � BaseBrowserrc� �||_||_y�N)rr>��selfrs r�__init__zBaseBrowser.__init__�s���� ��� rc��t�rE)�NotImplementedError�rGr.r/r0s rrzBaseBrowser.open�s��!�!rc�&�|j|d�Sr2r3�rGr.s rrzBaseBrowser.open_new�����y�y��a� � rc�&�|j|d�Sr7r3rMs rrzBaseBrowser.open_new_tab�rNrc�f� |r.|j�jd�rtd|����yy)N�-z'Invalid URL (leading dash disallowed): )�lstrip� startswith� ValueErrorr4s r� _check_urlzBaseBrowser._check_url�s5��Q� �3�:�:�<�*�*�3�/��F�s�g�N�O� O�0�3rN)��rT) r r r �argsrHrrr� staticmethodrUr rrrCrC�s6��=� �6�D��"�!�!��P��PrrCc��eZdZ d�Zdd�Zy)r&c���t|t�r||_dg|_n|d|_|dd|_tj j |j�|_y)Nrrr")� isinstance�strrrXr<r=r>rFs rrHzGenericBrowser.__init__�sP�� �d�C� ��D�I���D�I��Q��D�I��Q�R��D�I����(�(����3�� rc��tjd|�|j|�|jg|jD�cgc]}|j d|���c}z} tj dddk(rtj|�}ntj|d��}|j� Scc}w#t$rYywxYw)N�webbrowser.openr��winT)� close_fdsF) �sys�auditrUrrX�replace�platform� subprocess�Popen�wait�OSError�rGr.r/r0�arg�cmdline�ps rrzGenericBrowser.open�s��� � � �#�S�)� ������9�9�+�,0�I�I�!7�,5�S�"%���T�3�!7�,5�!7�7�� ��|�|�B�Q��5�(��$�$�W�-���$�$�W��=���v�v�x�<� ��!7��� �� �s�B5�!AB:�: C�CNrW�r r r rHrr rrr&r&�s��,�4� rr&c��eZdZ dd�Zy)r%c��|jg|jD�cgc]}|jd|���c}z}tjd|�|j |� tj dddk(rtj|�}ntj|dd��}|j�duScc}w#t$rYywxYw)Nrr_r`raT)rb�start_new_sessionF) rrXrercrdrUrfrgrh�pollrjrks rrzBackgroundBrowser.open�s����9�9�+�,0�I�I�!7�,5�S�"%���T�3�!7�,5�!7�7�� � � �#�S�)� ����� ��|�|�B�Q��5�(��$�$�W�-���$�$�W��7;�=���F�F�H��$� %��!7��� �� �s�B7�!AB<�< C�CNrW�r r r rr rrr%r%�s ��� rr%c�>�eZdZ dZdZdZddgZdZdZdZ dd�Z d d�Z y) � UnixBrowserNFT�%actionrc���g}|r+|jrt|�}|j|}|r|g}|jg|z|z}|s |jrtj }nd}t j |d||jxr|xsd|d��} |r | jd�} | S|jr| j��yy| j� S#tj$rYywxYw)NT�rb�stdin�stdout�stderrrr�F) � raise_opts�intr� backgroundrg�DEVNULLrh�redirect_stdoutri�TimeoutExpiredrs) rGrX�remoter0r.� raise_opt�optrm�inoutrn�rcs r�_invokezUnixBrowser._invoke�s���� � �d�o�o��I��I��/�/�)�,�C����I��9�9�+� �)�D�0�� �T�_�_��&�&�E��E� � � �W��E�%)�%9�%9�%C�e�%K�t�$)�T� C�� � ��V�V�A�Y���v� ��_�_��v�v�x�����v�v�x�<� ���,�,� �� �s�C�C-�,C-c��tjd|�|dk(r |j}nN|dk(r |j}n<|dk(r&|j� |j}n|j}nt dd|zz��|j |jd|��|jD�cgc]$}|jd|�jd|���&}}|D�cgc]}|s�|�� }}|j|d ||�}|s<|jD�cgc]}|jd|���}}|j|d d �Sy cc}wcc}wcc}w) Nr_rr"r8zBad 'new' parameter to open(); zexpected 0, 1, or 2, got %srwrTF) rcrd� remote_action�remote_action_newwin�remote_action_newtabrrUre� remote_argsr�rX)rGr.r/r0�actionrlrX�successs rrzUnixBrowser.open sH�� � � �#�S�)� �!�8��'�'�F� �A�X��.�.�F� �A�X��(�(�0��2�2���2�2���9�5��;�<�=� =� ���� � �I�v�6�7� �+�+�-�+�C�� � �I�v�.�6�6�t�S�A�+� �-�#�+�t��s��t��+��,�,�t�T�9�c�:���6:�i�i�@�i�s�C�K�K��c�*�i�D�@��<�<��e�U�3� 3���-��+��As�&)D6�D;�D;�ErErW) r r r r~r�r�r�r�r�r�r�rr rrrvrv�s<��G��J��J��O��d�#�K��M�����! �Frrvc�&�eZdZ ddgZdZdZdZdZy)�MozillarwrrVz -new-windowz-new-tabTN�r r r r�r�r�r�r�r rrr�r�*s%��.��d�#�K��M�(��%���Jrr�c�*�eZdZ ddgZddgZdZdZdZy) �Epiphanyz-noraiserVrwr�-nz-wTN)r r r r~r�r�r�r�r rrr�r�4s)��.��b�!�J��d�#�K��M����Jrr�c�&�eZdZ ddgZdZdZdZdZy)�ChromerwrrV� --new-windowTNr�r rrr�r�>s%��/��d�#�K��M�)�����Jrr�c�&�eZdZ ddgZdZdZdZdZy)�OperarwrrVr�TNr�r rrr�r�Js%��'��d�#�K��M�)�����Jrr�c�*�eZdZ ddgZdZdZdZdZdZy)�Elinksz-remotezopenURL(%s%action)rVz ,new-windowz,new-tabFN) r r r r�r�r�r�r�r�r rrr�r�Ts-��)��2�3�K��M�(��%���J��Orr�c��eZdZ dd�Zy)� Konquerorc���tjd|�|j|�|dk(rd}nd}tj} tj d||gd|||��}|j �y#t$rYnwxYw tj dd |gd|||d� �}|j��y#t$rYnwxYw tj d d |gd|||d� �}|j�duS#t$rYy wxYw)Nr_r8�newTab�openURL� kfmclientT)rbrzr{r|� konquerorz--silentry�kfmz-dF) rcrdrUrgr�rhrirjrs)rGr.r/r0r��devnullrns rrzKonqueror.openis&�� � � �#�S�)� ����� �!�8��F��F��$�$�� �� � �+�v�s�!;�+/�w�(/��A�A� �F�F�H��� � � � �� �� � �+�z�3�!?�+/�w�(/��37�9�A��v�v�x���� � � � �� &�� � �%��s�!3�+/�w�(/��37�9�A��F�F�H��$� %��� �� �s6�A1�1 A=�<A=�B0�0 B<�;B<�C0�0 C<�;C<NrWrtr rrr�r�bs ��� ,&rr�c�&�eZdZ ddgZdZdZdZdZy)�EdgerwrrVr�TNr�r rrr�r��s%��0��d�#�K��M�)�����Jrr�c��tjd�rtddtd��tjd�rtddtgd���dtj vr+tjd�rtddtd��dtj vr/tjd�rtdt t d��tjd�rtddtd��d D].}tj|�s�t|dt|���0tjd �rtd t t d ��n/tjd �rtd t t d ��tjd �rtd dtd ��d D].}tj|�s�t|dt|���0tjd�rtddtd��tjd�rtddtd��yy)Nzxdg-open�gio)r�rz--r�GNOME_DESKTOP_SESSION_IDz gvfs-open�KDE_FULL_SESSIONr�z x-www-browser)�firefox� iceweasel� seamonkeyzmozilla-firefox�mozillar�r��epiphany)z google-chrome�chrome�chromiumzchromium-browser�opera�microsoft-edge) r:r;rr%r<�environr�r�r�r�r�r�)r+s r�register_X_browsersr��s����|�|�J����T�#4�Z�#@�A��|�|�E�����/�0K�L�M�"�R�Z�Z�/�F�L�L��4M���d�$5�k�$B�C��R�Z�Z�'�F�L�L��,E���i��;�)?�@��|�|�O�$���$�(9�/�(J�K��� �<�<�� � �W�d�G�G�$4� 5�� �|�|�E���� �9�U�#3�4� ���k� "���i��;�)?�@��|�|�J����T�8�J�#7�8�O�� �<�<�� � �W�d�F�7�O� 4�O� �|�|�G����$��g��/��|�|�$�%��!�4��.>�)?�@�&rc���gatjdk(rXtddt d��tddt d��tddt d��tddt d��tjdk(rtddt d��tjdd d k(r�td t �tjjtjjd d �d�}tjjtjjdd�d�}ddddd||fD].}tj|�s�t|dt |���0tjd��r�tddtd���n�tjjd�stjjd�r` dj�}t!j"|t j$��}|j'�j)�}|at5�tjjd�r�tjd�rtddt7d��tjd�rtddt7d��tjd�rtddt9d��tjd�rtddt7d��tjd�rtddt7d��d tjvrytjd jtj:�}|j=�|D]3}|d!k7s� t?|d"�#�}|d$��t|dt7|�d"�#��5yy#t,t j.t0t2f$rY���wxYw)%N�darwin�MacOSX�defaultr�r��safari� serenityos�Browserr`razwindows-defaultzPROGRAMFILES(x86)zC:\Program Files (x86)z%Microsoft\Edge\Application\msedge.exe� PROGRAMFILESzC:\Program Filesr�r�r�zMicrosoftEdge.exer��DISPLAY�WAYLAND_DISPLAYz$xdg-settings get default-web-browser)r|�TERMz www-browser�links�elinks�lynx�w3m�BROWSERrVTrr") rrcrfr�MacOSXOSAScriptr%�WindowsDefaultr<r=�joinr�rr:r;r�r$rg� check_outputr��decode�stripr�FileNotFoundError�CalledProcessError�PermissionError�NotADirectoryErrorr�r&r��pathsep�reverser()�edge64�edge32r+r@� raw_result�result� userchoicesrms rrr�s����I� �|�|�x����4���!;�<���4���!:�;���D�/�)�"<�=���4���!:�;� �|�|�|�#���D�"3�I�">�?� �|�|�B�Q��5� ��"�N�3������b�j�j�n�n�-@�B[�\�H�J�������b�j�j�n�n�^�=P�Q�H�J��!�;� �8����1�G��|�|�G�$���$�(9�'�(B�C�1� �<�<�+� ,� �%�t�T�2E�-F� G� �:�:�>�>�)� $�� � ���7H�(I� /�<�B�B�D��'�4�4�S��AS�AS�T� �#�*�*�,�2�2�4�� )/�%� � !� �:�:�>�>�&� !��|�|�M�*����n�]�.K�L��|�|�G�$���$��w�(?�@��|�|�H�%���4���)9�:��|�|�F�#����~�f�'=�>��|�|�E�"����n�U�&;�<��B�J�J���j�j��+�1�1�"�*�*�=� �����#�G��"�}�!�'�T�:���q�6�>��W�d�N�7�,C�t�T� #� ��7&�z�'D�'D�o�Wi�j� �� �s� AO�#O(�'O(r`rac��eZdZdd�Zy)r�c��tjd|�|j|� tj|�y#t $rYywxYw)Nr_TF)rcrdrUr<� startfilerjrKs rrzWindowsDefault.open6sI�� �I�I�'�� -� �O�O�C� � �� � �S�!� �� � �� �s�?� A � A NrWrtr rrr�r�5s�� rr�r�c��eZdZ d�Zdd�Zy)r�c�x�tj|jj�d�td��||_y)Nz3 is deprecated in 3.11 use MacOSXOSAScript instead.r8�� stacklevel��warnings�warn� __class__r �DeprecationWarningrrFs rrHzMacOSX.__init__Rs5�� �M�M�T�^�^�4�4�5�6:�:�;M�Z[� ]��D�Irc��tjd|�d|vrd|z}tt|��}|jdk(rd|j dd�z}nE|jdk(rd }nd |d z z}d |j dd�z}d |j�d|�d|�d�}t jdd�}|�y|j|�|j�}| S)Nr_�:zfile:r��open location "%s"�"�%22�OmniWebrVz toWindow %dr"z OpenURL "%s"ztell application "zK" activate � z% end tell� osascript�wF) rcrdr�boolrrer<�popen�write�close) rGr.r/r0�script�toWindowr@�osapiper�s rrz MacOSX.openWs��� �I�I�'�� -��#�:��c�k���d�3�i�.�C��y�y�I�%�-�� � �C��0G�G���9�9� �)�!�H� -��a��8�H�$�s�{�{�3��'>�>��,0�9�9�c�8�E�� �h�h�{�C�0�G���� �M�M�&� !�����B��6�MrNrWror rrr�r�Hs�� � � rr�c�\��eZdZd�fd� Zed��Zej d��Zdd�Z�xZS)r�c�$��t�|�|�yrE)�superrH)rGrr�s �rrHzMacOSXOSAScript.__init__zs��� �G� �T� "rc��tj|jj�d|jj�d�td��|j S�Nz!._name is deprecated in 3.11 use z.name instead.r8r�r�)rGs r�_namezMacOSXOSAScript._name}sK�� �M�M�T�^�^�4�4�5�6"�"&�.�.�"9�"9�!:�.�J�,�� <��9�9� rc��tj|jj�d|jj�d�td��||_yr�r�)rG�vals rr�zMacOSXOSAScript._name�sH�� �M�M�T�^�^�4�4�5�6"�"&�.�.�"9�"9�!:�.�J�,�� <��D�Irc�V�tjd|�|j|�|jdk(rd|j dd�z}n!d|j|j dd�fz}t j dd�}|�y |j|�|j�}| S) Nr_r�r�r�r�z� tell application "%s" activate open location "%s" end z/usr/bin/osascriptr�F) rcrdrUrrer<r�r�r�)rGr.r/r0r�r�r�s rrzMacOSXOSAScript.open�s��� �I�I�'�� -� �O�O�C� ��y�y�I�%�-�� � �C��0G�G��� � � �3�;�;�s�E�#:�;� <���h�h�3�S�9�G���� �M�M�&� !�����B��6�Mr)r�rW) r r r rH�propertyr��setterr� __classcell__)r�s@rr�r�ys9��� #� � � � � ��� � � �  rr�c��ddl}dtjdz} |jtjddddg�\}}d}D]O\}}|dk(rd}�|dk(rd }�|d k(s|d k(s�!t |tj ��tj ��Qt�dk7r0t |tj ��tj d�|d}t||�t d �y#|j$rV}t |tj ��t |tj ��tj d�Yd}~��d}~wwxYw) NrzcUsage: %s [-n | -t | -h] url -n: open new window -t: open new tab -h, --help: show helpr"�ntdh�help)�filer�z-tr8z-hz--help�) �getoptrc�argv�error�printr|�exit�lenr) r�usage�optsrX�msg�new_win�o�ar.s r�mainr�s��� � #�x�x��{� +�E���]�]�3�8�8�A�B�<����A� ��d� �G����1� ��9��g� �$�Y�!�� �$�Y�!�x�-� �%�c�j�j� )� �H�H�J� �  �4�y�A�~� �e�#�*�*�%� ���� � �q�'�C���g�� �$�K��% �<�<�� �c�� � �#� �e�#�*�*�%� ���� � ���s�(C5�5E�A E�E�__main__rErW)*r<r#r:rcrg� threadingr��__all__� Exceptionr�RLockrrrrrrrrrr(�objectrCr&r%rvr�r�r��Chromiumr�r�r�r�r�rrfr�r�r�rr r rr�rs~��E� � � � ���� J�� �I� � � ����� � � � ��� #�e� #�5�D�,��',��DP�&�P�2�[��:���(N�+�N�b�k���{���[�� ���K�� �[� �3&� �3&�l�;��"2A�jMU�l�<�<����u�� �� �"�<�<�8��/��/�b%�+�%�P�8 �z���F�r